在不反序列化的情况下操作 JSON

Manipulate JSON without deserializing it

aiohttp 应用程序从外部资源获取 JSON 并需要使用它来执行另一个将 JSON 作为请求主体传递的请求。

为了避免serialization/deserialization开销,使用了ujson,然后只传递JSON对象以用于后续请求,而无需加载或转储。这行得通,但是 JSON 不能这样操作,只能转发。

可能没有办法在不反序列化的情况下操作它,但是由于使用了 ujson,该对象首先被反序列化为 C 对象。考虑到这一点,有没有办法在 C 级别继续操作这个对象,而无需将它作为 Python dict。一个示例操作是从 JSON 删除键或创建一个新的 JSON,其中只有原始 JSON 的一个子集。或者检查此 JSON.

中是否存在给定键

这可能对您有所帮助:https://github.com/lemire/simdjson

我不完全理解用例,但它是一个旨在

的库

We provide a fast parser, that fully validates an input according to various specifications. The parser builds a useful immutable (read-only) DOM (document-object model) which can be later accessed.

它有点具体,它需要具有特定技术和特定编译器的 CPU,但在我看来它可能适合您的用例。

它还有其他语言的包装器,包括 python。