我想分块解析一个巨大的json文件。我想使用它的块而不加载整个东西。 数据可以在这里找到 http://jmcauley.ucsd.edu/data/amazon/
当我使用ijson进行操作时,出现错误JSONError: Additional data
。
有什么办法吗?
我的代码:##产生其他数据错误
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()
答案 0 :(得分:0)
听起来JSON数据中包含多个顶级对象,但JSON标准不支持。但是,在使用/Users/hoomacbuk/.rvm/rubies/ruby-2.3.8/lib/ruby/2.3.0/digest.rb:16:in `const_missing': library not found for class Digest::SHA1 -- digest/sha1 (LoadError)
选项(例如multiple_values=True
)时,ijson仍支持此功能。