我的字典如下:
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会增加大小,但我相信第一行已经满足了这一点,我只需要其他行的帮助,我需要它来处理任意数量的键。
答案 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
模式打开文件!