CSV列表列表

Thu*_*tne 3 python csv dictionary

我知道我可以直接写一个字典列表到CSV文件.同样,有没有直接的方法将字典列表列表写入python中的csv文件,而无需手动迭代每一行?

样本数据

[[{'e': 46, 'p': 100, 'n': 0, 'a': 100, ...}, 
  {'e': 29, 'p': 40, 'n': 1, 'a': 40, ...}, ...],
 [{...}, ...]
Run Code Online (Sandbox Code Playgroud)

预期的格式

e,p,n,a,....
46,100,0,100,....
29,40,1,40,...
.......
Run Code Online (Sandbox Code Playgroud)

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

sli*_*der 6

如果没有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))
Run Code Online (Sandbox Code Playgroud)

输出(mydata.csv)

e,p,n,a
46,100,0,100
29,40,1,40
56,200,23,10
22,41,11,420
Run Code Online (Sandbox Code Playgroud)