python - 将复杂的字典导出到 csv 文件中
问题描述
我有一本字典,其中的值是列表。这是一个例子:
例子:
d = {'20190606_CFMPB576run3_CF33456_12.RCC': [1.0354477611940298, '0.51'],
'20190606_CFMPB576run3_CF33457_05.RCC': [1.0412757973733584, '1.09'],
'20190606_CFMPB576run3_CF33505_06.RCC': [1.0531309297912714, '0.81']}
我正在尝试将此字典导出到csv
文件中。像这个预期的输出:
预期输出:
file_name,citeria1,criteria2
20190606_CFMPB576run3_CF33456_12.RCC,1.0354477611940298, 0.51
20190606_CFMPB576run3_CF33457_05.RCC,1.0412757973733584,1.09
20190606_CFMPB576run3_CF33505_06.RCC,1.0531309297912714,0.81
为此,我编写了以下代码:
import csv
with open('mycsvfile.csv', 'w') as f:
header = ["file_name","citeria1","criteria2"]
w = csv.DictWriter(f, my_dict.keys())
w.writeheader()
w.writerow(d)
但它没有返回我想要的。你知道怎么解决吗?
解决方案
更改如下:
import csv
with open('mycsvfile.csv', 'w') as f:
header = ["file_name", "citeria1", "criteria2"]
w = csv.writer(f)
w.writerow(header)
for key, lst in d.items():
w.writerow([key] + lst)
ADictWriter
被赋予字段/列名称,并假定将作为字典提供的行具有与给定字段名称相对应的键。在您的情况下,数据结构是不同的。您可以使用简单csv.writer
的,因为您的行是给定字典的键和值的混合。
推荐阅读
- android - 我如何将一个班级送到另一个班级?
- android - Android Studio onStart 不执行
- c++ - 代码不为继承的函数参数赋值,也不调用函数
- swift - 有没有办法在不调用它的情况下取消转义闭包?
- python - 如何使用python更改条件“大于或等于”的excel单元格中字符串的字体颜色?
- json - 我还能如何格式化数据?swift parse json - 无法读取数据,因为它的格式不正确
- python-3.x - 为什么 pyinstaller 可执行文件会更改格式和分辨率?
- command-line - 使用 Imagemagick 批量拆分 png RGBA 通道,然后重新组合为分层 PSD
- java - 任务应用程序执行失败:处理中的transformClassesWithDexBuilderForDebug
- kotlin - kotlin 将地图列表缩减为单个地图