python - 到 CSV 的字典列表列表
问题描述
我知道我可以将字典列表直接写入 CSV 文件。同样,是否有一种直接的方法可以将字典列表列表写入python 中的 csv 文件,而无需手动遍历每一行?
样本数据
[[{'e': 46, 'p': 100, 'n': 0, 'a': 100, ...},
{'e': 29, 'p': 40, 'n': 1, 'a': 40, ...}, ...],
[{...}, ...]
预期格式
e,p,n,a,....
46,100,0,100,....
29,40,1,40,...
.......
请注意,这不是字典列表,而是字典列表
解决方案
如果没有 Pandas,您可以使用itertools.chain
以下命令获取所有字典的扁平列表,然后将其写入您的 CSV 文件csv.DictWriter
:
import csv
from itertools import chain
data = [
[{'e': 46, 'p': 100, 'n': 0, 'a': 100},
{'e': 29, 'p': 40, 'n': 1, 'a': 40}],
[{'e': 56, 'p': 200, 'n': 23, 'a': 10},
{'e': 22, 'p': 41, 'n': 11, 'a': 420}]]
fieldnames = ['e', 'p', 'n', 'a']
with open('mydata.csv', 'w') as f:
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(chain.from_iterable(data))
输出(mydata.csv)
e,p,n,a
46,100,0,100
29,40,1,40
56,200,23,10
22,41,11,420