将字典添加到csv文件

时间:2015-04-17 17:01:48

标签: python csv dictionary python-3.4

我的字典如下:

my_d ={'2010-01-02': [0.696083, 0.617865], '2010-01-01': [0.697253, 0.618224], '2010-01-03': [0.696083, 0.617865]}

我希望输出如下:

DATE,EUR,GBP
2010-01-02,0.696083,0.617865
2010-01-03,0.697253,0.618224
2010-01-03,0.696083,0.617865

我试过这个:

my_list = ["date", "EUR", "GBP"]
with open(fname, 'w',newline = '') as my_csv:
csv_writer = csv.writer(my_csv, delimiter=',')
csv_writer.writerow(my_list)
csv_writer.writerows(my_d)

但csv文件看起来不像那样。另请注意,在我的代码中,用户可以选择每个键有多少个值,所以在这个例子中它有两个,在另一个例子中它可能有三个这也意味着my_list会增加大小,但我相信第一行已经满足了这一点,我只需要其他行的帮助,我需要它来处理任意数量的键。

1 个答案:

答案 0 :(得分:1)

您需要循环遍历字典项目然后写入您的文件,最好使用csv模块处理csv文件:

my_list = ["date", "EUR", "GBP"]
import csv
my_d ={'2010-01-02': [0.696083, 0.617865], '2010-01-01': [0.697253, 0.618224], '2010-01-03': [0.696083, 0.617865]}
with open('fname.csv', 'wb') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=',')
    spamwriter.writerow(my_list)
    for mydate in sorted(my_d.keys()):
        spamwriter.writerow([mydate]+my_d[mydate])

请注意打开文件时缺少newline=''。这允许文件具有正常的"换行符(通常为'\n''\r\n'

注意您在python 3.x中可以使用w模式打开文件!