Мне нужно вытащить данные из mixpanel, и в настоящее время я делаю «необработанный экспорт» данных. Необработанный экспорт - это jsonl, который проходит через сжатый.Способ анализа уже прочитанного объекта по строкам
Моя проблема заключается в том, что я должен (в соответствии с API) читать весь сжатый файл (.read()
), и как только я его расшифровать (.decode('utf-8')
), он использует для большей части моей машины памяти.
Я хотел бы знать, есть ли способ для синтаксического анализа объекта чтения строки за строкой, чтобы я мог декодировать строку за строкой? Решение смены типа было сделано для того, чтобы уменьшить количество данных, которые я вытягиваю за один раз, и повторить вытягивание.
u может использовать 'readline()' вместо 'read()' для получения данных по строке –
Основная проблема заключается в том, что вы читаете контент в формате gzipped; который может быть прочитан правильно только при его полной загрузке (в противном случае у вас будут поврежденные данные). Чтобы решить другую проблему чтения json в кусках, попробуйте использовать ['ijson'] (https://pypi.python.org/pypi/ijson), который является итерационным интерпретатором json. –
Загрузите на диск, распакуйте диск, затем прочитайте строку за строкой/используя итеративный парсер JSON? – deceze