Python:将字典写入csv(简短方法)

时间:2015-05-19 06:42:49

标签: python csv dictionary

我正在尝试将字典写入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

2 个答案:

答案 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)

也可以用来最小化代码行。