我正在尝试在Python中加载一个非常大的JSON文件。我试过了:
import json
data = open('file.json').read()
loaded = json.loads(data)
但是这给了我一个SIGKILL错误。
我试过了:
import pandas as pd
df = pd.read_json('file.json')
我得到了一个内存不足的错误。
我想尝试使用ijson
来传输我的数据,并且一次只将一个子集拉入其中。但是,您需要知道JSON文件的架构是什么,以便您知道要查找的事件。我实际上并不知道我的JSON文件的架构是什么。所以,我有两个问题:
有没有办法在不知道架构的情况下在Python中加载或流式传输大型json文件?或者将JSON文件转换为另一种格式(或者转换为postgresql服务器)的方法?
是否有用于吐出我的JSON文件架构的工具?
更新:
使用head file.json
来了解我的JSON文件的外观。从那里开始有点容易。
答案 0 :(得分:0)
我会处理文件的较小部分。看看Lazy Method for Reading Big File in Python?。您可以调整建议的答案来按对象解析JSON对象。
答案 1 :(得分:-1)
你可以读一下这样的东西
f=open("file.json")
while True:
data = f.read(1024)
if not data:
break
yield data
逐行选项 data = [] 打开('文件')作为f: 对于f中的行: data.append(json.loads(线))
另外看看 https://www.dataquest.io/blog/python-json-tutorial/
使用jsonline
寻找更多答案