遍历python对象的路径语法

时间:2019-10-05 12:13:20

标签: python xpath jsonpath

是否存在一种基于表达式的工具来查询python复杂对象,就像使用XPath for XML或jsonpath用于JSON一样?

我曾考虑过将对象序列化为JSON,然后在其上使用jsonpath,但这似乎是一种笨拙的方式。

4 个答案:

答案 0 :(得分:2)

您可以使用内置库json将json作为嵌套字典导入,并使用字典符号-root['level1_object']['level2_object']遍历它。 JSON兼容的对象类型当然会作为对应的Python类型加载。

对于其他类型的数据,还有其他库,它们的行为大多类似。

我的新收藏夹是Box,它使您可以使用点符号遍历嵌套的字典。

答案 1 :(得分:1)

您可能想看一下AST模块: https://docs.python.org/2/library/ast.html

答案 2 :(得分:1)

@vBobCat我目前正在寻找类似的解决方案。同意使用json进行序列化和反序列化并不理想。你最后要干什么?

我发现http://objectpath.org/接近于我的用例的正确解决方案,尽管它缺乏对所需字段进行任意更新的功能。它的语法虽然与JSONPath略有不同,但可以表达JSONPath的许多功能。

答案 3 :(得分:1)

为了将来的研究人员,我添加了这个答案:

jsonpath-rw 似乎是我从一开始就一直在寻找的库,因为它完全符合我最初的要求。