是否存在一种基于表达式的工具来查询python复杂对象,就像使用XPath for XML或jsonpath用于JSON一样?
我曾考虑过将对象序列化为JSON,然后在其上使用jsonpath,但这似乎是一种笨拙的方式。
答案 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 似乎是我从一开始就一直在寻找的库,因为它完全符合我最初的要求。