aiohttp 应用程序从外部资源获取 JSON 并需要使用它来执行另一个将 JSON 作为请求正文传递的请求。
为了避免序列化/反序列化开销,使用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。
关于python - 在不反序列化的情况下操作 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55866797/