Найти - Пользователи
Полная версия: Парсинг файла с JSON по частям Python
Начало » Python для новичков » Парсинг файла с JSON по частям Python
1 2
doza_and
vetos
Похоже тема закрыта.
Всетаки посмотрите бинарные аналоги. protobuf, msgpack. может нет необходимости парсить?
Iskatel
vetos
так сказать, перекачать данные из одного файла в другой не загружая весь файл в память



Просто в дальнейшем предполагается, что таких загрузок одновременно могут быть 10-ки. Никакой памяти не хватит.

Может ошибка в слове “одновременно”? Зачем одновременность, быстрее обработается чтоль? Последовательно изх прогнать и нопроблем… По времени обработки практически никакой разницы.
izekia
Iskatel
По времени обработки практически никакой разницы.
разница как раз будет: ты ставишь на получение данных к примеру из четырех источников, обрабатываешь первый полученный и ставишь на получение следующей порции, переходишь к следующему и так далее. Это на небольших порциях данных уже ощущается. Можно даже без модного асинка все сделать
Iskatel
izekia
Ты какуюто странную задачу решаешь, по вводной: “так сказать, перекачать данные из одного файла в другой не загружая весь файл в память”

Т.е. судя по описанию все уже есть… Ничего получать не надо.
vetos
doza_and
может нет необходимости парсить?
Данные нужно перед окончательной записью в хранилище проверять на валидность. Это должен быть массив массивов чисел. Все массивы в одном обьекте должны иметь одинаковое количество чисел. Тоесть обьекты после приема необходимо будет десиреализовать.
А еще клиент должен знать в каком формате отправлять данные. На мой взгляд проще сказать что это JSON и не волноваться о не понимании.
Вобщем решений несколько нужно все изчить.
vetos
Iskatel
Ничего получать не надо.
Данные будут приходить на сервер. Сервер на Джанго. Он должен принимать, проверять и записывать на хранение.
Джанго принимает данные и записывает их во временный файл(если данных много). В идеальном варианте прямо из потока данные считывать. Просто я не знаю как это сделать. На этом задании как раз изучаю Джанго. При этом еще различные клиенты должны поддерживаться, пока только через веб страничку общаюсь с сервером.
py.user.next
vetos
Просто я не знаю как это сделать.
Это несложно сделать, но для этого надо было учиться.
Это надо сделать лексический анализатор и получить поток лексем. А потом сделать синтаксический анализатор (на базе конечного автомата с магазинной памятью) и просто проанализировать поток лексем на удовлетворение грамматике (которую нужно составить).
Но, не зная всего этого, сложно с нуля всё это сделать.
doza_and
vetos
На мой взгляд проще сказать что это JSON и не волноваться о не понимании.
С темже успехом можно сказать что это msgpack и не волноваться о непонимании. Размер массива в msgpack идет в начале,

vetos
Это должен быть массив массивов чисел. Все массивы в одном обьекте должны иметь одинаковое количество чисел. Тоесть обьекты после приема необходимо будет десиреализовать.
Я не знаю что вы понимаете под понятием десиреализовать. Я понимаю это как преобразование в родную для языка форму (в питоне список списков). https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F
Так вот для ваших проверок десериализация не нужна, по крайней мере для messagepack.
http://msgpack.org/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB