将字典(键和值)写入CSV文件

5

我只想让csv文件看起来像这样:

key,item1,item2,item3 key2,itema,itemB,itemC

等等

字典有一个键,值是一个浮点数列表。 这是我目前写入csv文件的代码,但它只会像这样写出键:k,e,y,s。

任何帮助都将不胜感激。

with open(outFileName1, 'w') as outfile:
   csv_Writer = csv.writer(outfile)
   csv_Writer.writerows(dict1)
3个回答

3
import csv


dict_data = {'key1': [1, 2, 3], 'key2': [4, 5, 6]}

with open("dict2csv.txt", 'w') as outfile:
   csv_writer = csv.writer(outfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)

   for k,v in dict_data.items():
       csv_writer.writerow([k] + v)

这段代码将以您所需的格式将每个键值对写入csv文件的单独行中。

1

不必深入了解CSV的工作原理,您可以使用类似以下代码的方式轻松解决它:

with open("out.txt", 'w') as outfile:
    for k,v in dict1.items():
        outfile.write(str(k))
        for item in v:
            outfile.write(","+str(item))
        outfile.write(" ")

2
一般情况下,不要尝试手写CSV文件,因为它无法正确处理转义等内容。在需要的CSV格式下,始终使用带有正确配置的csv.writer - Iguananaut

1
您当前的代码迭代字典,仅产生键。请查看。
import csv

data = {
    'key1': ['item1', 'item2'],
    'key2': ['item3', 'item4']
}

with open('', 'w') as outfile:
    writer = csv.writer(outfile)
    for k, v in data.iteritems():
        writer.writerow([k] + v)

注意它迭代由.iteritems()返回的键值对。将键插入到列表中,该列表与值列表连接起来。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接