我有一个像{a: [1, 2, 3], b: [4, 5, 6], c: [7, 3, 2]}
的字典,我想用Python写一个csv文件。我是csv文件:
col1,col2,col3,col4
a,1,2,3
b,4,5,6
c,7,3,2
我尝试使用CSV Dict编写器,但我无法获得值,因为这里是一个列表。
感谢任何帮助!
答案 0 :(得分:0)
with open("out.csv","wb") as csv_out:
# first the header
csv_out.write(",".join("Col%d"%i for i in range(len(a_dict.values()[0]))+"\n")
# then each row .... make sure its sorted by the keys ...
for key,a_list in sorted(a_dict.items(),key=lambda row:row[0])
x = [key,]
x.extend(a_list)
csv_out.write(",".join(str(i) for i in x)
答案 1 :(得分:0)
希望以下代码可以提供帮助:
fo = open("example.csv", "wr")
fo.write("col1,col2,col3,col4\n")
fo.write("a,1,2,3\n")
fo.write("b,4,5,6\n")
fo.write("c,7,8,9\n")
fo.close()
答案 2 :(得分:0)
>>> mydict
{'b': [4, 5, 6], 'c': [7, 3, 2], 'a': [1, 2, 3]}
>>> result ="\n".join(["{0} {1}".format(key, " ".join([str(x) for x in list_value])) for key, list_value in mydict.iteritems()])
>>> print result
b 4 5 6
c 7 3 2
a 1 2 3
将结果写入csv文件。
如果订单很重要,您可以使用OrderedDict
答案 3 :(得分:0)
d={'a': [1, 2, 3],'b': [4, 5, 6], 'c': [7, 3, 2]}
with open("result.txt","w+") as f:
for k,v in d.items():
alist=[k]+[str(r) for r in v]#alist=['a','1','2','3']
line=' '.join(alist)+"\n"#line="a 1 2 3\n"
f.write(line)
答案 4 :(得分:0)
只是为了练习,这是另一个版本;
mydict = {'a': [1, 2, 3], 'c': [7, 3, 2], 'b': [4, 5, 6]}
with open('test.csv','w') as f:
for k,v in mydict.iteritems():
f.write(str.join(',', [k]+[str(i) for i in v])+'\n')
它只是循环遍历字典项,为每个项生成一行。
通过创建一个数组生成每一行,其中键作为第一个元素,其值转换为后面的字符串。然后它使用逗号分隔符加入数组的元素。
答案 5 :(得分:0)
您可以使用Python的csv
库执行此操作,如下所示:
import csv
my_dict = {"a" : [1, 2, 3], "b" : [4, 5, 6], "c" : [7, 3, 2]}
with open("output.csv", "wb") as f_output:
csv_output = csv.writer(f_output)
csv_output.writerow(['col1', 'col2', 'col3', 'col4'])
for key in sorted(my_dict.keys()):
csv_output.writerow([key] + my_dict[key])
给你:
col1,col2,col3,col4
a,1,2,3
b,4,5,6
c,7,3,2