Форум сайта python.su
Принимаеться файл в ктором записан JSON массив. файл может быть большой (до 200МБ). Необходимо проверить массив на соответсвие формату JSON (и еще бы хотелось производить форматирование) и записать в файл в хранилище. В память все 200МБ загружать не хочется.
Подскажите, как это сделать по частям, так сказать, перекачать данные из одного файла в другой не загружая весь файл в память.
Например
[
[
1234,
1234,
1234,
465
],
[
1234,
1234,
1234,
1234
],
[
1234,
1234,
1234,
1234
],
[
1234,
1234,
1234,
1234
]
]
Нужно получить.
1234,1234,1234,465
1234,1234,1234,1234
1234,1234,1234,1234
1234,1234,1234,1234
Офлайн
а почему бы и не загрузить все 200?
и помимо стандартной реализации существуют всякие ujson, https://github.com/simplejson/simplejson, rapidjson, yajl
последняя вроде как может парсить поток, про остальные не в курсе
Офлайн
izekiaНа данный момент так и рабоатет.
а почему бы и не загрузить все 200?
izekia
и помимо стандартной реализации существуют всякие ujson, https://github.com/simplejson/simplejson, rapidjson, yajl
последняя вроде как может парсить поток, про остальные не в курсе
Офлайн
10ки джсонов по 200, а Вы про смену формата не думали?
конечно не знаю всей специфики
Офлайн
izekiaя только изучаю питон. когда начал выплнять уже понял что тут что-то не то, но такое ТЗ. нужно передавать массив массивов чисел в формате JSON - массива.
10ки джсонов по 200, а Вы про смену формата не думали?
Отредактировано vetos (Ноя. 14, 2016 13:39:07)
Офлайн
просто если это двумерный массив чисел, то ему тем более не нужна наглядность, проще передавать в бинарном виде, как вариант посмотреть на механизмы сериализации типа pickle, все зависит от задачи.
Офлайн
izekiaэту сериализацию придеться делать на клиенте? тогда под каждого клиента нужно будет подыскивать подходящий сериализатор или формат pickle такой же общий для разных языков?
механизмы сериализации типа pickle
Офлайн
vetosя не знаю задачи и не могу ничего сказать
эту сериализацию придеться делать на клиенте? тогда под каждого клиента нужно будет подыскивать подходящий сериализатор или формат pickle такой же общий для разных языков?
The data format used by pickle is Python-specific. This has the advantage that there are no restrictions imposed by external standards such as JSON or XDR (which can’t represent pointer sharing); however it means that non-Python programs may not be able to reconstruct pickled Python objects.но это не единственный бинарный сериализатор
Офлайн
Я вас понял. Буду думать.
еще почитаю про
izekiaСпасибо.
всякие ujson, https://github.com/simplejson/simplejson, rapidjson, yajl
Офлайн
Остановился на yajl. Есть решения для питона.
например https://github.com/kashifrazzaqui/json-streamer
Похоже тема закрыта. Спасибо за наводку.
Отредактировано vetos (Ноя. 14, 2016 15:34:53)
Офлайн