Итеративный анализ файла JSON с помощью ijson - PullRequest
0 голосов
/ 03 ноября 2018

Я хочу разобрать огромный файл 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()

результат кода

...