Я работаю с огромными файлами JSON размером от 100-300 МБ.Поэтому, чтобы сэкономить место на диске (и время вычислений?), Я преобразовал файл JSON в файл .json.gz
и действовал так:
with gzip.GzipFile(json_file, 'r') as f:
return json.loads(f.read().decode('utf-8'))
json.loads
не вызвал проблем с памятьюиспользование, но я хотел бы увеличить скорость, и, следовательно, я пытался py-yajl
(не путать с yajl-py , который я тоже пытался, но это заняло гораздо больше времени, так как я анализировалпотоковый JSON), например:
yajl.loads(f.read().decode('utf-8'))
Но, как я видел на сайтах, утверждающих, что yajl
быстрее библиотек json
и simplejson
, я не увидел улучшения в исполнениивремя.Наоборот, это заняло немного больше времени по сравнению с json
.Я что-то здесь упускаю?В каких случаях yajl
должен быть быстрее, чем json/simplejson
?Скорость зависит также от структуры файла JSON?
Мой файл JSON выглядит следующим образом:
[
{
"bytes_sent": XXX,
"forwardedfor": "-",
"hostip": "XXX",
"hostname": "XXX",
"https": "on",
"landscapeName": "XXX",
},
...
]
Я знаю, что это субъективный вопрос и, вероятно,закрыто, но я нигде не мог прояснить свои сомнения, и в то же время я хотел бы узнать о разнице между этими библиотеками более подробно, поэтому задаю вопрос здесь.