我有一个字典,它的值是一个列表,我想将它写入一个 csv 文件,其中键和列表中的所有项目(值)都在 cvs 文件中的单独单元格中,这就是我的方式字典看起来像:
my_dict = {'r1':[1,0,0,1,1,0,1,0], 'r2' : [0,1,1,0,1,1,0,0]}
所以我希望我在 excel 中第一行的第一个单元格包含 r1,并且列表中的所有项目分别在一个单独的单元格中。然后我需要添加一个像这样的标题(它可以是一个列表,如:
l = ['R','t1','t2','t3','t4','t5','t6','t7','t8']
编辑:
这是我试过的代码:
with open (outputFileName, 'a') as outFile:
writer = csv.writer(outFile)
for r , t in enumerate(my_dict.items()):
writer.writerow([r, *t])
但结果是一个单元格中的键,一个单元格中的值(整个列表)。尚未对 header 进行任何尝试
最佳答案
问题是:-
enumerate()
函数向可迭代对象添加一个计数器。因此,对于 cursor 中的每个元素,都会使用 (counter, element)
生成一个元组; for 循环将其分别绑定(bind)到 row_number 和 row 。这是一个内置的生成器函数,请参阅
http://docs.python.org/2/library/functions.html#enumerate .
这是修改后的代码。
import csv
my_dict = {'r1':[1,0,0,1,1,0,1,0], 'r2' : [0,1,1,0,1,1,0,0]}
outputFileName = 'test32.csv'
with open (outputFileName, 'a+') as outFile:
writer = csv.writer(outFile)
writer.writerow(['R','t1','t2','t3','t4','t5','t6','t7','t8'])
for r , t in my_dict.items():
writer.writerow([r, *t])
输出-
R,t1,t2,t3,t4,t5,t6,t7,t8
r1,1,0,0,1,1,0,1,0
r2,0,1,1,0,1,1,0,0
希望对您有所帮助。
关于python - 如何将字典写入具有列表作为其值的 csv 并为其添加标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49398737/