【问题标题】:Write in csv file with dict用 dict 写入 csv 文件
【发布时间】:2015-05-31 22:01:29
【问题描述】:

我正在使用 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

第一列是字典的键所在的位置,同一行中的下一组列是相应键的值。

【问题讨论】:

    标签: python python-2.7 csv dictionary


    【解决方案1】:

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

    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 文件。

    【讨论】:

    • 对不起,但我的理解是:做两行,一个作为键,另一个作为它的值,然后我不明白“前置”,你的意思是“附加”。不介意的话,能不能详细点?感谢关注
    【解决方案2】:

    这是另一种选择:

    >>> 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      相关资源
      最近更新 更多