我想以块的形式解析一个巨大的json文件。我想使用它的一大块,而不是加载整个东西。数据可以在这里找到http://jmcauley.ucsd.edu/data/amazon/
当我使用ijson来做这件事时,我得到一个JSONError: Additional data的错误。有没有办法做到这一点?
我的code:##produces附加数据错误
import pandas as pd
file = open('Books_5.json',"r") ##Books_5.json is the 5-core small dataset
objects = ijson.items(file, 'meta.data.item')
reviews = (o for o in objects if o['type']=='reviewText')
for review in reviews : print(review)这确实起作用了,但速度非常慢:
path='Books_5.json'
def parse(path):
g = open(path, 'rb')
for l in g:
yield eval(l)
def getDF(path):
i = 0
df = {}
for d in parse(path):
df[i] = d
i += 1
return pd.DataFrame.from_dict(df, orient='index')
df = getDF(path)
df.info()发布于 2020-03-27 13:36:28
听起来JSON数据中有多个顶级对象,这是JSON标准所不支持的。但是,当使用multiple_values=True选项(例如,ijson.items(file, 'meta.data.item', multiple_values=True) )时,ijson仍然支持这一点。
https://stackoverflow.com/questions/53125838
复制相似问题