使用Python将字典转换为CSV格式
我有一组迭代过的文件,并制作了一个关键字字典:文件名、短语。我想输出一个csv文件,看起来像这样 **创建的字典示例**使用Python将字典转换为CSV格式,python,csv,Python,Csv,我有一组迭代过的文件,并制作了一个关键字字典:文件名、短语。我想输出一个csv文件,看起来像这样 **创建的字典示例** {'BatMan': [('1.txt', 'I am Bat-Man'), ('2.txt', 'Bat-man is awesome')], 'Flash': [('1.txt', 'The Flash is awesome'), ('1.txt', ' The Flash is only in txt 1 though'),]}
{'BatMan': [('1.txt', 'I am Bat-Man'),
('2.txt', 'Bat-man is awesome')],
'Flash': [('1.txt', 'The Flash is awesome'),
('1.txt', ' The Flash is only in txt 1 though'),]}
我将这个dict设置为我的字典,并有以下代码
my_dict= dict(**out)
with open('MYTESTER.csv', 'wb') as f:
wcsv = csv.writer(f)
wcsv.writerow([ 'word', 'context'])
for key, value in my_dict.items():
wcsv.writerow( [key, value] )
语境
蝙蝠侠1.txt,我是蝙蝠侠
蝙蝠侠2.txt,蝙蝠侠太棒了
Flash 1.txt,“Flash太棒了
Flash 1.txt,但Flash仅在txt 1中
但我得到的是
语境
蝙蝠侠1.txt,我是蝙蝠侠,2.txt,蝙蝠侠太棒了
Flash 1.txt,“Flash非常棒,1.txt,但是Flash只在txt 1中
我确信这在我指定writerow的过程中是一个简单的错误,但我一直在查看文档,我不明白我做错了什么。为什么要这样打印?我如何修复它?对于循环,您需要两个
:
- 一个
用于
循环,用于字典项
- 列表中每个不同的项目都有一个
循环
发生这种情况的原因是,您试图将多维列表粘贴到单个csv单元格中。当这种情况发生时,csv模块不知道该做什么,所以它只是将条目作为字符串打印出来。要解决这个问题,您必须添加另一列并合并两个for循环。一个用于dictionary key:value对,另一个用于dictionary值中的元组项
请尝试下面的示例脚本:
with open("MYTESTER.csv", "wb") as f:
wcsv = csv.writer(f)
wcsv.writerow(['word', 'context', 'text'])
for key, value in dictionary.items():
for item in value:
wcsv.writerow([key, item[0], item[1]])
这将生成如下所示的csv文件:
word, context, text
BatMan, 1.txt, I am Bat-Man
BatMan, 2.txt, Bat-man is awesome
Flash, 1.txt, The Flash is awesome
Flash, 1.txt, The Flash is only in txt 1 though
此词典每行至少有三项,因此需要三列来存储它