【问题标题】:Trying to print a dictionary to file试图将字典打印到文件
【发布时间】:2017-10-26 13:01:16
【问题描述】:

我创建了一个名为 students 的字典,例如,当我说 print students[Student00, Student00] 我得到 ('111111100', 72, 40)} 等其他学生姓名时

我想将字典输出到 csv 文件中,每个条目都在 csv 中自己的单元格中,因此 Student00、Student00 将在第一个单元格中,然后 111111100 在下一个单元格中,72 在下一个单元格中,然后 40 在下一个单元格中最后一个单元格。我已经尝试了下面的代码,但它不起作用。它在第一个单元格中打印键,然后在第二个单元格中打印值,但我希望每个值都在自己的单元格中。我怎样才能做到这一点?

with open('ur file.csv','wb') as out:
    for key, val in students.items():
        csv_out=csv.writer(out)
        csv_out.writerow([key, val])
    for row in students:
        csv_out.writerow(row)

【问题讨论】:

    标签: python csv dictionary for-loop tuples


    【解决方案1】:

    问题出在这一行:

    csv_out.writerow([key, val])
    

    这一行说,给我写出 2 个单元格,key 在第一个单元格中,val 在第二个单元格中。如果您希望 writerow 写入 4 个单元格,那么您必须为其提供长度为 4 的列表。根据您的描述,val 是一个 3 元组。试试这个:

    csv_out.writerow([key] + list(val))
    

    【讨论】:

    • 成功了!太感谢了。我什至没有意识到。
    【解决方案2】:
    with open('ur file.csv','wb') as out:
        csv_out=csv.writer(out)
        # then do for loop and write stuff...
    

    【讨论】:

    • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 2016-04-22
    • 2015-05-29
    • 2019-11-04
    • 2019-03-28
    相关资源
    最近更新 更多