我有一个 JSON 文件,其中包含一个包含许多键值对的字典。我想将其写入单个 CSV。一种方法是简单地遍历每个键:
csvwriter.writerow([f["dict"]["key1"], f["dict"]["key2"],
f["dict"]["key3"], ... ])
这会很乏味。
另一种可能性是简单地使用
csvwriter.writerow([f["dict"].values()])
但它会将所有内容写入 CSV 文件的一列,这没有帮助。
有没有办法将每个值写入 CSV 文件的一列?
请您参考如下方法:
您可能想使用 csv.DictWriter
官方文档中的示例非常简单:
import csv
with open('names.csv', 'w') as csvfile:
fieldnames = ['first_name', 'last_name']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})
请注意,您必须向构造函数提供fieldnames。如果你确定你所有的字典都有相同的键并且不关心输出的顺序,你可以只使用 list(first_dict) 来获取列名,否则,你我们会想出一种更明确地指定它们的方法。
