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

raf*_*ffo 2 python csv dictionary

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

我的问题是类似的,但是我假设字典不一定匹配键:在这种情况下,我希望该单元格没有值(或分配 None/0/..)。下面举例。

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

例子

to_csv = [{'name':'bob','age':25,'weight':200, 'height':181},
          {'name':'jim','age':31,'weight':180}]
Run Code Online (Sandbox Code Playgroud)

应该变成:

name,age,weight,height
bob,25,200,181
jim,31,180,None
Run Code Online (Sandbox Code Playgroud)

pac*_*lik 6

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])
Run Code Online (Sandbox Code Playgroud)