import csv
my_dict = {"test": 1, "testing": 2}
with open('mycsvfile.csv', 'wb') as f: # Just use 'w' mode in 3.x
w = csv.DictWriter(f, my_dict.keys())
w.writeheader()
w.writerow(my_dict)
import csv
somedict = dict(raymond='red', rachel='blue', matthew='green')
with open('mycsvfile.csv','wb') as f:
w = csv.writer(f)
w.writerows(somedict.items())
如果您希望一行上的所有键和下一行上的所有值,这也很简单:
with open('mycsvfile.csv','wb') as f:
w = csv.writer(f)
w.writerow(somedict.keys())
w.writerow(somedict.values())
1. As a proper language where I want all software engineering principles to hold in my code.
2. As a scripting language, where I want to just get something done and the code I write for this is not meant for reuse.
您使用的
DictWriter.writerows()
需要一个dict列表,而不是dict。您希望DictWriter.writerow()
只写一行。如果需要csv文件的头,还需要使用
DictWriter.writeheader()
。您可能还想签出the ^{} statement 中的opening files。它不仅更加python和可读性,而且可以处理关闭,即使出现异常。
做出这些更改的示例:
产生:
你的代码非常接近工作状态。
尝试使用常规的csv.writer而不是DictWriter。后者主要用于编写词典列表。
下面是一些将每个键/值对写到单独一行的代码:
如果您希望一行上的所有键和下一行上的所有值,这也很简单:
Pro提示:在开发这样的代码时,请将writer设置为
w = csv.writer(sys.stderr)
,这样您就可以更容易地看到生成的内容。当逻辑完善后,切换回w = csv.writer(f)
。为什么要使用csv来完成这个简单的任务?
我使用python有两种方式:
我的回答只对第二个目的有用。还考虑了记住所有这些模块及其各自功能的痛苦:P
相关问题 更多 >
编程相关推荐