我想将一个字典列表从一个文件写入一个新的CSV文件。这是我的代码。
import csv
myfile = open(filename, 'r')
tocsv = myfile.read()
myfile.close()
keys = tocsv[0].keys()
with open(filename.join('.csv'), 'w+') as outputfile:
dictwriter = csv.DictWriter(outputfile, keys)
dictwriter.writeheader()
dictwriter.writerows(tocsv)
但是,在第7行keys = tocsv[0].keys()
中,python将tocsv
解释为字符串,这使我无法使用keys()
函数。我不能在这里使用eval
,因为它是一个字典列表,所以我被卡住了。欢迎任何帮助。
提前致谢。
答案 0 :(得分:0)
尝试json.load()
并查看dicts列表是否格式正确JSON:
import json
with open(filename, 'r') as myfile:
tocsv = json.load(myfile)
keys = tocsv[0].keys()
...
否则,请尝试ast
模块来评估文字:
import ast
with open(filename, 'r') as myfile:
tocsv = ast.literal_eval(myfile.read())
keys = tocsv[0].keys()
...
注意:字典不是订购的,因此密钥的顺序可能与原始字典的顺序不同。