将具有不匹配键的字典列表转储到csv文件中

时间:2015-09-18 13:09:26

标签: python csv dictionary

Here询问如何将字典列表(带有匹配的键)转储到csv文件中。

我的问题是类似的,但我假设词典不一定匹配键:在这种情况下,我想让该单元格没有值(或指定None / 0 / ..)。示例如下。

  • csv模块中是否有一个实用程序允许我这样做?
  • 在肯定的情况下,我该怎么做?
  • 在否定的情况下,我是否应该收集所有密钥,然后浏览所有字典并将缺失密钥的值设置为None / 0 / ...?

实施例

to_csv = [{'name':'bob','age':25,'weight':200, 'height':181},
          {'name':'jim','age':31,'weight':180}]

应该成为:

name,age,weight,height
bob,25,200,181
jim,31,180,None

1 个答案:

答案 0 :(得分:4)

import csv

to_csv = [{'name':'bob','age':25,'weight':200, 'height':181},
          {'name':'jim','age':31,'weight':180}]

# find header
s = set()
for i in to_csv:
    s.update(i)
header = list(s)

with open("foo.csv", 'w') as f:
    writer = csv.writer(f)
    writer.writerow(header)
    for d in to_csv:
        writer.writerow([d.get(i, "None") for i in header])
相关问题