用dict写入csv文件

时间:2015-05-31 22:01:29

标签: python python-2.7 csv dictionary

我正在使用python 2.7并且需要创建一个数据集,为此我有一个字典,我将其内容放在csv文件中。这是我目前的词典:

dict = {"arthur1.jpg": [0.123,0.456,0.864], "arthur2.jpg": [0.124,0.764,0.965]}
csv文件中的

看起来像这样:

arthur1.jpg 0.123   0.456   0.864
arthur2.jpg 0.124   0.764   0.965

第一列是dicts键的位置,同一行中的下一组列是相应键的值。

2 个答案:

答案 0 :(得分:3)

将每个键值对变成一行;您的值已经是一个列表,只是在列表前面加上包含键的列表文字:

import csv

with open(youcsvfilename, 'rb') as csvf:
    csvwriter = csv.writer(csvf)    
    for filename, values in dictionary.items():
        csvwriter.writerow([filename] + values)

表达式[filename] + values在新列表中生成,用作输出行。 csv module然后获取该列表并以正确的格式将其写入您的CSV文件。

答案 1 :(得分:0)

这是另一种选择:

>>> import pyexcel as pe # pip install pyexcel
>>> dict = {"arthur1.jpg": [0.123,0.456,0.864], "arthur2.jpg": [0.124,0.764,0.965]}
>>> sheet = pe.get_sheet(adict=dict)
>>> sheet
Sheet Name: pyexcel_sheet1
+-------------+-------------+
| arthur1.jpg | arthur2.jpg |
+-------------+-------------+
| 0.123       | 0.124       |
+-------------+-------------+
| 0.456       | 0.764       |
+-------------+-------------+
| 0.864       | 0.965       |
+-------------+-------------+
>>> sheet.transpose()
>>> sheet
Sheet Name: pyexcel_sheet1
+-------------+-------+-------+-------+
| arthur1.jpg | 0.123 | 0.456 | 0.864 |
+-------------+-------+-------+-------+
| arthur2.jpg | 0.124 | 0.764 | 0.965 |
+-------------+-------+-------+-------+
>>> sheet.save_as("my.tsv")
>>> with open("my.tsv") as f:
...     print f.read()
... 
arthur1.jpg 0.123   0.456   0.864
arthur2.jpg 0.124   0.764   0.965