我有一个4.5GB的CSV文件,我试图使用Python 2.7转换为JSON。我用一个较小的500mb文件可以正常工作但是我在较大的文件上耗尽了内存。如何将我编码的内容转换为以块的形式读取CSV文件并将其写入(以块的形式附加)到JSON文件的内容?
f = open('table-52007-changeset.csv', 'rb' )
reader = csv.DictReader(f)
out = json.dumps( [ row for row in reader ] )
json_response = json.loads(out)
jsonoutput = 'masterlist2.0.json'
with open(jsonoutput, 'a') as f:
for x in json_response:
json.dump(x,f)
f.write('\n')
答案 0 :(得分:1)
您目前正在使用以下行读取整个结构:
out = json.dumps( [ row for row in reader ] )
而是直接一次直接进入json,如:
import json
import csv
f = open('table-52007-changeset.csv', 'rb')
reader = csv.DictReader(f)
jsonoutput = 'masterlist2.0.json'
with open(jsonoutput, 'a') as f:
for x in reader:
json.dump(x, f)
f.write('\n')