将Python OrderedDict写入CSV
作者:互联网
我有一个有序的字典,正如人们所料,它包含许多键值对.我需要将有序字典的内容解析为CSV格式,其中键位于顶行,其各自的值位于第二行.我有第一排,但我不知道如何写第二行. OrderedDict中的值是您所期望的(它在终端中打印出来的样子):( [(a,1),(b,2),(c,3)]).这就是我所拥有的:
import csv
with open("frequencies.csv", "w") as outfile:
csvwriter = csv.writer(outfile)
csvwriter.writerow(myDict)
我尝试迭代这些值并将它们附加到列表中,但是列表没有维护有序字典的原始顺序,据我所知,这将使得从列表中打印值非常困难到CSV,以便他们匹配正确的密钥.
在此先感谢您的帮助!
解决方法:
好吧,我将在这里回答我自己的问题.有几个人很友好地在评论中提出建议.正如所建议的那样,我正在努力与熊猫一起完成这项工作.然而,就在我这样做的时候,我想到我可以做到这一点,而无需了解Pandas模块的来龙去脉.这是我想出的:
import csv
keys, values = [], []
for key, value in myOrderedDict.items():
keys.append(key)
values.append(value)
with open("frequencies.csv", "w") as outfile:
csvwriter = csv.writer(outfile)
csvwriter.writerow(keys)
csvwriter.writerow(values)
所以这里是这里发生的事情:
>创建两个与我的有序词典中的键和值对应的空列表
>迭代我的有序字典中的键/值对,将每对添加到其各自的列表中.因为Python中的列表保留了它们的顺序,所以这确保了任一列表中相应索引的项目都属于一起
>将密钥写入我的CSV的第一行,将值写入第二行
我确信有更优雅的方法可以做到这一点,但这足以达到我的目的.
标签:python,dictionary,csv,ordereddictionary 来源: https://codeday.me/bug/20190611/1218463.html