Python 处理包含对象列表的大型 JSON 文件
Python process large JSON file containing list of objects
我正在解析一个包含对象数组的大型 JSON 文件,并将数据写入 Python 中的 csv 文件。 JSON 文件的大小为 50GB,我在加载文件时遇到在线内存错误 (data = json.load(data_file))。
当我 运行 文件大小约为 4GB 及以下时,代码 运行 成功。当我 运行 的文件大小为 50 GB 或更大时,如何解决内存错误?
JSON 文件结构:
[
{"name":"Haks",
"age":"22",
"other":{
"weight":"100"
}
},
{"name":"Kahs",
"age":"38"
"other":{
"weight":"120"
}
},
.....
]
代码:
import json
import csv
with open('C:/Users/username/filename.json') as data_file
data = json.load(data_file)
arr = []
for x in data:
obj = []
obj['name'] = x['name']
obj['age'] = x['age']
obj['weight']= x['other']['weight']
arr.append(obj)
keys = arr[0].keys()
with open('json_output.csv', 'w',newline='') as csvfile:
writer = csv.DictWriter(csvfile, keys)
writer.writeheader()
for item in arr:
writer.writerow(item)
我正在解析一个包含对象数组的大型 JSON 文件,并将数据写入 Python 中的 csv 文件。 JSON 文件的大小为 50GB,我在加载文件时遇到在线内存错误 (data = json.load(data_file))。
当我 运行 文件大小约为 4GB 及以下时,代码 运行 成功。当我 运行 的文件大小为 50 GB 或更大时,如何解决内存错误?
JSON 文件结构:
[
{"name":"Haks",
"age":"22",
"other":{
"weight":"100"
}
},
{"name":"Kahs",
"age":"38"
"other":{
"weight":"120"
}
},
.....
]
代码:
import json
import csv
with open('C:/Users/username/filename.json') as data_file
data = json.load(data_file)
arr = []
for x in data:
obj = []
obj['name'] = x['name']
obj['age'] = x['age']
obj['weight']= x['other']['weight']
arr.append(obj)
keys = arr[0].keys()
with open('json_output.csv', 'w',newline='') as csvfile:
writer = csv.DictWriter(csvfile, keys)
writer.writeheader()
for item in arr:
writer.writerow(item)