2015-06-10 2 views
2

У меня есть большой json-файл твитов (около 5 ГБ). У меня ошибка памяти. Итак, я решил проанализировать данные. Я нашел пакет ijson. Я имею такую ​​ошибку:Нет модуля с именем ijson

import ijson 
parser = ijson.parse(tweets_data_path) 
tweets_data = [] 
f = open(tweets_data_path, "r") 
objects = ijson.items(f, 'other_config.item') 
for line in objects: 
    try: 
     tweet = json.loads(line) 
     tweets_data.append(tweet) 
    except: 
     continue 

«Нет модуль с именем ijson» Я довольно новыми для Python, я не смотрел на исходный файл пакета. Но я вполне мог бы получить то, что нужно. Любая помощь будет оценена.

+1

Как вы установили пакет 'ijson'? – larsks

+0

'import ijson' Это опечатка? Модуль называется ['json'] (https://docs.python.org/3.4/library/json.html) – CoryKramer

+0

@CoryKramer - это итеративный синтаксический анализатор json, который можно использовать в ситуациях, когда данные слишком велики, чтобы вписаться в Память. – larsks

ответ

7

ijson - это внешний пакет, который не входит в состав обычных библиотек python. Вам нужно сначала установить ijson. Посмотрите на использование чего-то вроде pip, который является менеджером пакетов для python. После установки вы можете установить ijson через терминал следующим образом:

pip install ijson 
+0

Я только пытался установить через терминал. По вашему предложению я тоже попытался с пипсом. Когда я запустил pip install ijson, у меня есть «недопустимая синтаксическая ошибка» – Denis

+0

@Denis: Кажется, вы успешно установили ijson с pip! «Недопустимая синтаксическая ошибка», возможно, относится к остальной части вашего кода. Пожалуйста, обновите свой первоначальный вопрос и, пожалуйста, предоставьте сообщение об ошибке, которое вы видите. Сообщение об ошибке должно сообщать вам, где и в чем проблема. – Parham

+0

@ Parham Но сообщение об ошибке появляется в строке кода «pip install ijson». У меня нет никакой синтаксической ошибки в остальной части кода. Есть ли другой способ установить пакет, возможно, другие требования к концу? Еще раз спасибо. – Denis