我正在使用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键的位置,同一行中的下一组列是相应键的值。
答案 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