首页 > 解决方案 > 到 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,...
.......

请注意,这不是字典列表,而是字典列表

标签: pythoncsvdictionary

解决方案


如果没有 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

推荐阅读