【问题标题】:Write a Dictionary to a CSV file将字典写入 CSV 文件
【发布时间】:2023-03-03 02:17:01
【问题描述】:

我有一本包含以下内容的字典:

{'Jim': ['1', '9', '5'], 'kim': ['8', '6', '0'], 'lim': ['10', '6', '1'], 'slim': ['8', '8', '2'], 'pimp': ['9', '9', '1'], 'sim': ['8', '7', '1']}

我的问题是:如何将所有这些写入 CSV 文件?

它应该在 CSV 文件中这样写和出现:

名字 x y z

name2 x y z

名称 3 x y z

...

我试过了:

with open('file.csv', 'wb') as csvfile: 
    wr = csv.writer(csvfile)
    wr.writerow(DICTIONARY) 

【问题讨论】:

    标签: python csv python-3.x dictionary


    【解决方案1】:

    您可以遍历字典项并一次写入一行:

    import csv
    
    D = {'Jim': ['1', '9', '5'], 'kim': ['8', '6', '0'], 'lim': ['10', '6', '1'],
         'slim': ['8', '8', '2'], 'pimp': ['9', '9', '1'], 'sim': ['8', '7', '1']}
    
    with open('file.csv', 'w', newline='') as csvfile:
        writer = csv.writer(csvfile)      
    
        for name, items in D.items():    
            writer.writerow([name] + items)
    

    检查csv.writer 文档here
    请注意,Python 字典是无序的,即这可能不会在每次运行时生成相同的文件。

    【讨论】:

    • AttributeError: 'dict' 对象没有属性 'iteritems'
    • in spamwriter.writerow([name] + items) TypeError: 'str' does not support the buffer interface
    • @pythontamer:我已将代码更新为 Python 3.x 语法。
    • 这会将列表放入 csv 文件中的一个框中,我希望每个条目都有单独的框 - name | x |是 | z
    • @pythontamer:在创建writer 对象时使用不同的分隔符。
    【解决方案2】:

    以下代码将列表列表输入到单独的列中(通过编辑 eugene 的代码完成)

    with open("file.csv', 'w', newline='') as csvfile:
        writer = csv.writer(csvfile)  
        for name, items in DICTIONARY.items():    
            writer.writerow([name] + items)
    

    【讨论】:

      猜你喜欢
      • 2014-06-30
      • 2017-03-28
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多