170 похожих чатов

Столкнулся с интересной проблемой. А как в Python несколько сконкатенированных json

распарсить?
Условно json1json2json3.

Попробовал python-rapidjson, но не вижу там нужного функционала.

20 ответов

25 просмотров

Сконкатенированный json уже не json увы

Gleb-Pylypets Автор вопроса
Arkady Strugatsky
Сконкатенированный json уже не json увы

ну парсеру json не нужно наперёд знать конец json так-то.

json-stream

Gleb-Pylypets Автор вопроса
Arkady Strugatsky
Сконкатенированный json уже не json увы

в С++ это поддерживается в nlohmann json без проблем.

Gleb-Pylypets Автор вопроса
evle
json-stream

Спасибо, попробую.

Ну Ка скажи как разбить 123 на 2 json?

Gleb-Pylypets Автор вопроса
Ded
Ну Ка скажи как разбить 123 на 2 json?

никак, это невалидный объект - не может быть конкатенация нескольких json такой

Ded
Может например 1 и 23

Если пришло без фигурных скобочек, кладем сервис, отрубаем датацентр

Gleb-Pylypets Автор вопроса
Ded
Может например 1 и 23

понял, вообще согласен, нужно глянуть, что будет на примитивных json - думаю, там объекты только

Gleb Pylypets
понял, вообще согласен, нужно глянуть, что будет н...

Короче нужен либо разделитель, либо не конкатенируй

Gleb-Pylypets Автор вопроса
Ded
Короче нужен либо разделитель, либо не конкатениру...

ну кейс такой, что конкатенация происходит, когда есть kafka_key & kafka_value - получаем kafka_key + kafka_value

Gleb-Pylypets Автор вопроса
Jack Bolt
Если пришло без фигурных скобочек, кладем сервис, ...

всё нормально, прога выдаёт ошибку, если 1 и 23 (

Gleb-Pylypets Автор вопроса
evle
json-stream

Странная немного либа - она только с file-like object читает.

Gleb Pylypets
Странная немного либа - она только с file-like obj...

Если у тебя на входе строка разумной и конечной длины — возникает вопрос, почему эти отдельные джейсоны не собрали в список через запятую. Эту фигню есть смысл городить для чего-то постоянно пополняющегося чанками. Потому из строк и нет интерфейса.

Gleb-Pylypets Автор вопроса
evle
Если у тебя на входе строка разумной и конечной дл...

Вообще я посмотрел примеры и не очень понятно, как той либой распарсить. Они говорят как преимущества это меньше памяти, поскольку читают не всё сразу, а сколько нужно, но нигде нету упоминаний про несколько jsons. data = json_stream.load(io.StringIO('{"value_keyN":"value_valueN"}{"key_keyN":"key_valueN"}')) Но условно как вывести этих два json?

Gleb-Pylypets Автор вопроса
evle
https://github.com/daggaz/json-stream/issues/30#is...

Хм, ну тот пример то работает, но условно на своём примере я получаю такой вывод. >>> data = json_stream.load(io.StringIO('{"value_keyN":"value_valueN"}{"key_keyN":"key_valueN"}'), tokenizer=tokenize) >>> for d in data: ... print(json.dumps(d)) ... "value_keyN"

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта