我有以下形式的字典
>>> {'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])
答案 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
列表项解压缩到主列表中。