如何将字典列表转换为Python中的CSV格式,假设字典的键可能不同?

0 投票
2 回答
1673 浏览
提问于 2025-04-17 01:43

我有一个字典的列表,像这样:

[
{'item1':'bla', 'item2':'bli', 'item3':'blu'},
{'item1':'love', 'item3':'python'}
]

注意,第二个字典没有'item2'这个键。我想生成一个CSV格式的输出,这样我就可以把所有内容插入到SQL表中:

item1,item2,item3
bla,bli,blu
love,,python

如果所有字典都有相同的键,我找到了一个简单的方法来做到这一点,但如果不是这样,我就不知道怎么优雅地处理了。

2 个回答

0

类似这样的东西

#Create a master list of keys
allKeys = ()
for row in YourListHere:
    allKeys.union(row.keys())

#Sort the keys
allKeys = list(allKeys).sorted()

#Go through printing the rows
for row in YourListHere:
    values = []
    for key in allKeys:
        #Add the values if it exists, if no key in this row add a blank
        if key in row:
            values.append(row[key])
        else:
            values.append('')
    print ','.join(values)
2

使用 csv.DictWriter,并设置 fieldnamesrestval 这两个参数。

撰写回答