我正在尝试将字典写入csv文件,但不是直接写入。我为字典键添加了一个新的字段名称。
以下是我想要的,但我想知道它是否可以缩短?特别是最后一行。
import csv
mydict = {"John":{'car':'BMW','age':27}, 'Mike':{'car':'Jetta', 'age':35}}
col_names = ['name','car','age']
with open('junk', 'w' ) as f:
writer = csv.DictWriter(f,fieldnames=col_names)
writer.writeheader()
for key, value in mydict.items():
writer.writerow({'name':key, 'car':value['car'], 'age':value['age']}) #
期望的输出应该是:
name,car,age
Mike,Jetta,35
John,BMW,27
答案 0 :(得分:5)
为避免在最后一行重复字段名称,您可以将数据存储在临时字典中并进行更新:
out = {'name':key}
out.update(value)
writer.writerow(out)
答案 1 :(得分:2)
csv
提供writerows
,例如:
writer.writerows(dict(mydict[key], name=key) for key in mydict)
也可以用来最小化代码行。