Python - 将大型CSV文件转换为JSON

时间:2018-02-04 22:16:19

标签: python json python-2.7 csv

我有一个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')

1 个答案:

答案 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')
相关问题