我有一个我认为应该是一个非常容易的任务,但我似乎无法解决。
如何将Python字典写入csv文件?我只想把字典键写到文件的第一行,把键值写到第二行。
我得到的最接近的是(我从别人的帖子上得到的):
f = open('mycsvfile.csv','wb')
w = csv.DictWriter(f,my_dict.keys())
w.writerows(my_dict)
f.close()
问题是,上面的代码似乎只写了第一行的键,仅此而已。我没有把值写到第二行。
有什么想法吗?
发布于 2012-04-29 23:15:48
您使用的是DictWriter.writerows()
,它需要一个字典列表,而不是一个字典。您希望DictWriter.writerow()
只写一行。
如果您想要csv文件的头文件,您还需要使用DictWriter.writeheader()
。
您可能还想查看用于opening files的the with
statement。它不仅更具pythonic风格和可读性,而且可以为您处理闭包,即使发生异常也是如此。
进行了以下更改的示例:
import csv
my_dict = {"test": 1, "testing": 2}
with open('mycsvfile.csv', 'w') as f: # You will need 'wb' mode in Python 2.x
w = csv.DictWriter(f, my_dict.keys())
w.writeheader()
w.writerow(my_dict)
这会产生:
test,testing
1,2
https://stackoverflow.com/questions/10373247
复制相似问题