Python 将字典列表从文件写入CSV
我想将字典列表从一个文件写入一个新的CSV文件。这是我的代码Python 将字典列表从文件写入CSV,python,csv,dictionary,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) dictwrite
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
,因为这是一个字典列表,所以我被卡住了。欢迎任何帮助
提前感谢。试试json.load()
看看dict列表是否是格式正确的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()
...
注意:字典没有排序,因此键的顺序可能与原始字典的顺序不同。请尝试json.load()
并查看dict列表是否为格式正确的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()
...
注意:字典没有排序,因此键的顺序可能与原始字典的顺序不同。如果是格式良好的dict列表,可以使用
json.load()
而不是file.read()
。如果json格式不好,您可以查看ast.literal\u eval
,将数据转换为dict
。文件中没有字典列表这样的东西dict
s是内存中的数据结构。有各种工具,如json
和pickle
,可以将dict的序列化版本写入磁盘。它们甚至可以是python源代码。问题是,你需要知道这个列表的格式,并使用正确的工具进行解码。顺便说一句,在这里发布一个示例可以帮助我们猜测。我不确定filename.join('.csv')
是否正在做您认为它正在做的事情……如果它是一个格式良好的dict列表,您可以使用json.load()
而不是file.read()
。如果json格式不好,您可以查看ast.literal\u eval
,将数据转换为dict
。文件中没有字典列表这样的东西dict
s是内存中的数据结构。有各种工具,如json
和pickle
,可以将dict的序列化版本写入磁盘。它们甚至可以是python源代码。问题是,你需要知道这个列表的格式,并使用正确的工具进行解码。顺便说一句,在这里发布一个示例可以帮助我们猜测。我不确定filename.join('.csv')
是否正在做您认为它正在做的事情…@Ricardo_Bello我不得不回滚编辑json.load()
接受文件对象,json.load()
接受字符串对象。对于json.load()
@Ricardo\u Bello,使用myfile.read()
是不正确的,我必须回滚编辑json.load()
接受文件对象,json.load()
接受字符串对象。对于json.load()
,使用myfile.read()
是不正确的。