如何将字典列表转换为Python中的CSV格式,假设字典的键可能不同?
我有一个字典的列表,像这样:
[
{'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
,并设置 fieldnames
和 restval
这两个参数。