[英]How to write a dictionary of lists to a csv file?
我有这个列表字典,我想将其写入CSV文件:
file2_Dict = {'id': ' ', 'gender': ['M', 'M'], 'name': ['Smith', 'John'], 'city': ['Omaha','Lincoln']}
问题在于,并非词典的所有键都有一个项目列表作为值。 在这种情况下,键(即'id'
)具有一个字符串作为值(即" "
)。 我尝试使用Tim Pietzcker提供的解决方案,但这仅输出csv文件的标题(字典的键),如下所示:
id, gender, name, city
预期的输出应该是这样的:
id, gender, name, city
,M,Smith,Omaha
,M,John,Lincoln
任何想法如何解决这个问题?
您可以预处理字典,并用空列表替换“空”值。 然后使用itertools.izip_longest()
代替zip()
:
import csv
from itertools import izip_longest
file2_Dict = {'id': ' ', 'gender': ['M', 'M'], 'name': ['Smith', 'John'], 'city': ['Omaha','Lincoln']}
# replace space string values with empty lists
for key, value in file2_Dict.items():
if value == ' ':
file2_Dict[key] = []
with open("test.csv", "wb") as outfile:
writer = csv.writer(outfile)
writer.writerow(file2_Dict.keys())
writer.writerows(izip_longest(*file2_Dict.values()))
会产生:
gender,city,id,name
M,Omaha,,Smith
M,Lincoln,,John
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.