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

标签 python json serialization python-c-api ujson

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/

相关文章:

python - 如何在python中为Matrix选择特定的列

python - 将十六进制字符串拆分为 Python 中的列表 - 如何?

python - 将嵌套的 JSON 读入 Dask DataFrame

C#反序列化已移动或重命名的类

java - 使用 2 个 BufferedImage transient 字段序列化 Obj,第二个图像将不会被读取

python - 多个过滤器 Python Data.frame

javascript - 用 JS 打开新窗口 - 但里面有 MEDIA_URL - 如何?

php - 在 php 中反序列化 Json 数组的最佳方法?

C: JSON 处理器

c# - 在 C# 中动态序列化大量对象而不是一次全部序列化?