首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ijson迭代解析JSON文件

使用ijson迭代解析JSON文件
EN

Stack Overflow用户
提问于 2018-11-03 05:08:31
回答 1查看 561关注 0票数 0

我想以块的形式解析一个巨大的json文件。我想使用它的一大块,而不是加载整个东西。数据可以在这里找到http://jmcauley.ucsd.edu/data/amazon/

当我使用ijson来做这件事时,我得到一个JSONError: Additional data的错误。有没有办法做到这一点?

我的code:##produces附加数据错误

代码语言:javascript
复制
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)

这确实起作用了,但速度非常慢:

代码语言:javascript
复制
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()

result of the code

EN

回答 1

Stack Overflow用户

发布于 2020-03-27 13:36:28

听起来JSON数据中有多个顶级对象,这是JSON标准所不支持的。但是,当使用multiple_values=True选项(例如,ijson.items(file, 'meta.data.item', multiple_values=True) )时,ijson仍然支持这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53125838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档