具有一键和两个值的字典到CSV

时间:2019-02-07 00:02:21

标签: python csv dictionary

我有以下形式的字典

>>> {'1' : [V3210 , 234567 ,1235675 , 23], '2' : [v3214 , 5678 ,65879 ,89} , ...}

如何将字典写成csv形式,就像这样:

1    V3210    234567    12345675    23
2    v3214    5678      65879       89

我尝试过:

for key, value in van.iteritems():
   w.writerow([key, value])

2 个答案:

答案 0 :(得分:1)

import csv

van =  {'1' : ['V3210' , 234567 ,1235675 , 23], '2' : ['v3214' , 5678 ,65879 ,89]}

with open('some_name.csv', 'w', newline='') as csvfile:
    my_writer = csv.writer(csvfile, delimiter='\t',
                           quotechar='"', quoting=csv.QUOTE_MINIMAL)
    for key, val in van.items():
        my_writer.writerow([key] + val)

some_name.csv

1 V3210   234567  1235675 23
2 v3214   5678    65879   89

答案 1 :(得分:0)

您的尝试非常接近。您需要使用*(“ splat”运算符)“解压缩”存储在列表中的值:

for key, value in van.iteritems():
   w.writerow([key, *value])

认为这应该适用于2.7。请注意,Python 2.x会在一年内到期,因此该考虑使用Python 3了。

如果它不起作用,则可以将列表连接起来:

w.writerow([key] + value)

最重要的是writerow需要一维列表来代表该行。在串联的情况下,我们必须首先将key括在列表中。否则,我们可以将value列表项解压缩到主列表中。