Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 14, 2016 19:30:58

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Парсинг файла с JSON по частям Python

vetos
Похоже тема закрыта.
Всетаки посмотрите бинарные аналоги. protobuf, msgpack. может нет необходимости парсить?



Офлайн

#2 Ноя. 14, 2016 19:57:37

Iskatel
Зарегистрирован: 2015-07-29
Сообщения: 291
Репутация: +  3  -
Профиль   Отправить e-mail  

Парсинг файла с JSON по частям Python

vetos
так сказать, перекачать данные из одного файла в другой не загружая весь файл в память



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

Может ошибка в слове “одновременно”? Зачем одновременность, быстрее обработается чтоль? Последовательно изх прогнать и нопроблем… По времени обработки практически никакой разницы.

Офлайн

#3 Ноя. 14, 2016 20:04:25

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Парсинг файла с JSON по частям Python

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



Офлайн

#4 Ноя. 14, 2016 20:14:27

Iskatel
Зарегистрирован: 2015-07-29
Сообщения: 291
Репутация: +  3  -
Профиль   Отправить e-mail  

Парсинг файла с JSON по частям Python

izekia
Ты какуюто странную задачу решаешь, по вводной: “так сказать, перекачать данные из одного файла в другой не загружая весь файл в память”

Т.е. судя по описанию все уже есть… Ничего получать не надо.

Офлайн

#5 Ноя. 15, 2016 08:20:33

vetos
Зарегистрирован: 2016-11-09
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг файла с JSON по частям Python

doza_and
может нет необходимости парсить?
Данные нужно перед окончательной записью в хранилище проверять на валидность. Это должен быть массив массивов чисел. Все массивы в одном обьекте должны иметь одинаковое количество чисел. Тоесть обьекты после приема необходимо будет десиреализовать.
А еще клиент должен знать в каком формате отправлять данные. На мой взгляд проще сказать что это JSON и не волноваться о не понимании.
Вобщем решений несколько нужно все изчить.

Офлайн

#6 Ноя. 15, 2016 08:28:19

vetos
Зарегистрирован: 2016-11-09
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг файла с JSON по частям Python

Iskatel
Ничего получать не надо.
Данные будут приходить на сервер. Сервер на Джанго. Он должен принимать, проверять и записывать на хранение.
Джанго принимает данные и записывает их во временный файл(если данных много). В идеальном варианте прямо из потока данные считывать. Просто я не знаю как это сделать. На этом задании как раз изучаю Джанго. При этом еще различные клиенты должны поддерживаться, пока только через веб страничку общаюсь с сервером.

Отредактировано vetos (Ноя. 15, 2016 08:29:07)

Офлайн

#7 Ноя. 15, 2016 11:32:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

Парсинг файла с JSON по частям Python

vetos
Просто я не знаю как это сделать.
Это несложно сделать, но для этого надо было учиться.
Это надо сделать лексический анализатор и получить поток лексем. А потом сделать синтаксический анализатор (на базе конечного автомата с магазинной памятью) и просто проанализировать поток лексем на удовлетворение грамматике (которую нужно составить).
Но, не зная всего этого, сложно с нуля всё это сделать.



Офлайн

#8 Ноя. 15, 2016 20:59:29

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Парсинг файла с JSON по частям Python

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/



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version