Я использую следующий код Python3 в PyCharm для анализа идентификатора пользователя и твита из файлов JSON с данными Twitter. Мне удалось успешно создать списки, кадры данных и экспортировать файлы CSV для 13 файлов размером до 57 МБ .
with open(file, 'r', encoding='utf8' , errors='ignore') as json_file:
data = json.loads("[" + json_file.read().replace("}\n{", "},\n{") + "]")
user_ids = []
for tweet in data:
if 'user' in tweet.keys():
if 'id_str' in tweet["user"].keys():
user_ids.append(tweet["user"]["id_str"])
tweet_ids = []
for tweet in data:
if 'id_str' in tweet.keys():
tweet_ids.append(tweet['id_str'])
data_tuples = list(zip(user_ids, tweet_ids))
df = pd.DataFrame(data_tuples, columns = ['User ID', 'Tweet ID'])
print(df)
print('\nLength is ' + str(len(df)))
df.to_csv(outfile, encoding='utf-8', index=False)
Однако при попытке применить этот код в файле 26 ГБ JSON той же структуры, я получаю следующую ошибку памяти:
Traceback (most recent call last):
File "C:/Users/taylo/PycharmProjects/TwitterTest/JSON_Flatten.py", line 23, in <module>
data = json.loads("[" + json_file.read().replace("}\n{", "},\n{") + "]")
MemoryError
Есть ли способ прочитать этот файл по частям, последовательно добавляя части в файл?