首页 > 解决方案 > 将具有不同键的字典写入 CSV 文件

问题描述

我有一些字典:

d1 = {'name':'jon','age':4}
d2 = {'name':'joe','age':34,'height':100}

我还有其他未在此处列出的字典,它们有一些不同的键,但它们有一些与d1and相同的键d2

import csv
with open('file.csv', 'a') as f:
    wr = csv.writer(f) 
    wr.writerow(d1.values())
    wr.writerow(d2.values())

当然,这不会将数据放在正确的列中。它也不需要标题。我该如何设置,以便每个字典中的每个键都成为标题,并且在将信息写入 CSV 时将值放在正确的位置?

标签: pythonpython-3.xcsvdictionary

解决方案


尝试使用csv.DictWriter(f, fieldnames=csv_columns)而不是csv.writer(f)查看此处的文档。至于csv_columns如果您事先不知道所有列名,您可以遍历所有字典找到唯一的并将它们添加到列表中。

我在下面写了一个例子。

import csv

d1 = {'name':'jon', 'age':4}
d2 = {'name':'joe', 'age':34, 'height':100}

csv_columns = ['name', 'age', 'height']

with open('file.csv', 'a') as f:
    wr = csv.DictWriter(f, fieldnames=csv_columns)
    wr.writeheader()
    wr.writerow(d1)
    wr.writerow(d2)

推荐阅读