首页 > 解决方案 > 当值是二维列表时,将字典写入 CSV 文件的最佳方法是什么?

问题描述

我有以下字典

dict = {5: [ [a00, a01, ..., a0n], [a10, a11, ..., a1n], ... ],
        6: [ [b00, b01, ..., b0n], [b10, b11, ..., b1n], ... ],
        7: [ [c00, c01, ..., c0n], [c10, c11, ..., c1n], ... ],               
        8: etcetera }

所有二维列表的列数相同,但行数不同。

将其写入 csv 文件的最佳方法是什么。目前我使用

w = csv.writer(open("python_output.csv", "w"))
for key, val in dict.items():
    w.writerow([key, val])

但这不起作用,因为整个 2d 列表被放入 CSV 文件的一个单元格中。

标签: pythoncsvdictionaryexport-to-csv

解决方案


Itertools是你的朋友:

import itertools

w = csv.writer(open("python_output.csv", "w"))
for key, val in idict.items():
    w.writerow([key, *itertools.chain(*val)])

输出文件内容为:

5,a00,a01,a0n,a10,a11,a1n
6,b00,b01,b0n,b10,b11,b1n
7,c00,c01,c0n,c10,c11,c1n

推荐阅读