4

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

为避免ujson使用序列化/反序列化开销,然后仅传递 JSON 对象以在后续请求中使用,而无需加载或转储。这可行,但不能以这种方式操纵 JSON,只能转发。

可能没有反序列化它就无法操作它,但由于ujson使用它,该对象首先被反序列化为 C 对象。考虑到这一点,有没有一种方法可以在 C 级别继续操作该对象,而无需将其作为 Python 字典。一个示例操作是从 JSON 中删除键或使用原始 JSON 的一个子集创建一个新的 JSON。或者检查这个 JSON 中是否存在给定的键。

4

1 回答 1

2

这可能会帮助你:https ://github.com/lemire/simdjson

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

我们提供了一个快速解析器,它可以根据各种规范完全验证输入。解析器构建了一个有用的不可变(只读)DOM(文档对象模型),以后可以访问它。

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

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

于 2019-04-26T12:38:29.393 回答