【问题标题】:How to write a dict to a csv that have a list as its value and add a header for it如何将字典写入以列表为值的csv并为其添加标题
【发布时间】:2018-08-30 02:59:27
【问题描述】:

我有一个字典,它的值是一个列表,我想将它写入一个 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])

但结果是一个单元格中的键,一个单元格中的值(整个列表)。标题还没有尝试过

【问题讨论】:

  • 到目前为止你有什么尝试,在问题中也显示那段代码?

标签: python list csv dictionary header


【解决方案1】:

问题是:-

enumerate() 函数将计数器添加到可迭代对象。因此,对于 cursor 中的每个元素,都会使用 (counter, element) 生成一个元组; for 循环将其分别绑定到 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

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2015-01-08
    • 1970-01-01
    • 2013-03-04
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 2020-05-29
    • 2012-11-19
    相关资源
    最近更新 更多