【问题标题】:Write .csv file with list of dictionaries [closed]使用字典列表编写 .csv 文件 [关闭]
【发布时间】:2016-08-25 03:03:55
【问题描述】:

我有这个字典列表:

[{'Eva': 5}, {'Ana': 53}, {'Ada': 12}]

我需要获取这个列表并制作一个 .csv 文件,所以输出需要是这样的:

我有这段代码,但它给了我错误,所以我现在真的不知道该怎么做。

import csv
file = [{'Eva': 5}, {'Ana': 53}, {'Ada': 12}]

keys = file[0].keys()
with open('output.csv','wb') as output_file:
    dict_writer = csv.DictWriter(output_file,keys)
    dict_writer.writeheader()
    dict_writer.writerows(file)

【问题讨论】:

  • "errors"更具体,给minimal reproducible example
  • 它给了我一个 ValueError : dict contains fields not in fieldnames: 'Ana'
  • 错误在dict_writer = csv.DictWriter(output_file,keys)这一行。变量keys 为假。最好使用[('Eva', 5), ('Ana', 53), ('Ada', 12)] 而不是[{'Eva': 5}, {'Ana': 53}, {'Ada': 12}]
  • 我需要它与字典列表一起,所以我不能用 [ ('Eva' ,5.... )] 等)

标签: python list python-2.7 csv dictionary


【解决方案1】:

代码可以是这样的;

import csv

fieldnames = ["Owner's Names", "Average Age"]
file = [{'Eva': 5}, {'Ana': 53}, {'Ada': 12}]

with open('output.csv', 'w') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()

    for f in file:
        writer.writerow({fieldnames[0]: f.keys()[0], fieldnames[1]: f.values()[0]})

希望对您有所帮助。

【讨论】:

  • 这很有帮助,现在该功能可以正常工作了。谢谢你:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-15
  • 2014-06-30
  • 1970-01-01
  • 2019-01-12
  • 2016-10-26
相关资源
最近更新 更多