从文件中将字典列表写入CSV

时间:2016-02-21 03:44:13

标签: python csv dictionary

我想将一个字典列表从一个文件写入一个新的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,因为它是一个字典列表,所以我被卡住了。欢迎任何帮助。

提前致谢。

1 个答案:

答案 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()
...

注意:字典不是订购的,因此密钥的顺序可能与原始字典的顺序不同。