Управлять JSON без десериализации - PullRequest
3 голосов
/ 26 апреля 2019

Приложение aiohttp извлекает JSON из внешнего ресурса и должно использовать его для выполнения другого запроса, передавая JSON в качестве тела запроса.

Чтобы избежать издержек сериализации / десериализации, ujson используется, а затем JSONобъект просто передается для использования в последующем запросе без какой-либо загрузки или выгрузки.Это работает, но JSON не может быть обработан таким способом, просто переадресован.

Возможно, нет способа манипулировать им без десериализации, но поскольку используется ujson, объект сначала десериализуется как объект C.Имея это в виду, есть ли способ продолжать манипулировать этим объектом на уровне C, даже не приводя его в качестве диктата Python.Примером операции может быть удаление ключей из JSON или создание нового JSON только с подмножеством исходного JSON.Или проверка, существует ли данный ключ в этом JSON.

1 Ответ

1 голос
/ 26 апреля 2019

Это может помочь вам: https://github.com/lemire/simdjson

Я не совсем понимаю вариант использования, но это библиотека, которая нацелена на

Мы предоставляем быстрый анализатор, который полностью проверяет ввод в соответствии с различными спецификациями. Парсер создает полезный неизменяемый (только для чтения) DOM (объектно-объектная модель), к которому можно получить доступ позже.

Это немного специфично, для этого требуются процессоры с определенными технологиями и определенными компиляторами, но мне кажется, что это может соответствовать вашему варианту использования.

Он также имеет оболочки для других языков, включая python.

...