如何在python中将列表字典导出到没有头文件的csv?

时间:2014-12-03 16:14:52

标签: python csv dictionary

我尝试使用以下格式(带引号)和

来获取数据

1)将其导出为CSV 2)将标头添加到文件中:

{
9: [[0, 0, 'ABC'], [1, 2, 'DE'F'], [3, 4, 'GHI']], 
11: [[9, 30, 'LEOPAR'D'], [17, 28, 'DOG'], [19, 43, 'APP'LE']]
}

数据应如下所示:

Field1   Field2   Field3   Field4
9        0        0        ABC
9        1        2        DE'F
9        3        4        GHI
11       9        30       LEOPAR'D

引号也出现在' \ u2019s'

我有一个包含大约900个密钥的文件,因此我需要一种动态方式来调用密钥,而不是显式调用。我尝试了一个预期的序列'以下代码出错。理想情况下,我希望' 9'在csv文件中为与其关联的每一行重复。

writefile = filepath
fieldnames = {'data1':['data2', 'data3', 'data4']}
with open( writefile, 'w' ) as f:
    writer = csv.writer(f)
    writer.writerow(fieldnames)
    writer.writerows(section_num_by_paragraph_num)

1 个答案:

答案 0 :(得分:0)

以下适用于我,但我不明白你的意思

  

所以我需要一种动态的方式来调用密钥

如果下面的代码没有达到你想要的效果,请更具体。

import csv

data = {
        9: [[0, 0, 'ABC'], [1, 2, 'DE"F'], [3, 4, 'GHI']], 
        11: [[9, 30, 'LEOPAR"D'], [17, 28, 'DOG'], [19, 43, 'APP"LE']]
       }


fieldnames = ['Field{}'.format(i) for i in range(1,5)]

with open( 'outfile', 'w' ) as f:
    writer = csv.writer(f, delimiter='\t', quoting=csv.QUOTE_NONE, escapechar='\\', quotechar="")
    writer.writerow(fieldnames)
    for k, vv in data.items():
        for v in vv:
            writer.writerow([k] + v)