python - 当值是二维列表时,将字典写入 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 文件的一个单元格中。
解决方案
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
推荐阅读
- c# - 当源 DataTable 包含少于 12 行时,CsvHelper CsvWriter 为空
- html - thead 上的底部边框与 tbody tr 中的边框重叠,表格中的折叠边框
- python - Seaborn 示例在 X 轴上绘制日期不显示日期
- c++ - C++: Program crashes when I try to access a private class string variable. Why is this, and what can I do to fix it?
- azure-ad-b2c - 我应该使用什么方法将 Azure B2C 用户映射到具有不同策略和流的 N 个应用程序?
- xamarin - why click events or gestures are not work in carousel page childs on IOS?
- javascript - localStorage.setItem for AJAX api call not defined until after function runs
- java - Java - JSON output is not expected as what console suggests
- c# - 反序列化嵌套的json数据c#
- python - 将新值添加到 txt 文件