Python 的类似 Xpath 的包,用于在列表和字典的所有级别上查找键

Xpath-like package for Python to find keys on all level in lists and dicts

给定的是一个数据结构,它在结构中的任意位置具有键 TEXT,如下例所示:

{'info': [
    {'TEXT': 'SUBINLIST'},
          {'duda': {
              'TEXT': 'SUBSUB',
              'walter': 'jaja'}}
          {'hey': [
              {'jess': 'morning'},
              {'TEXT': 'DEEPEST'}
          ]}  
    ],
 'TEXT': 'TOPLEVEL'}

我想找到 TEXT 键的值。 Python 是否有类似 XPath 的程序包,我可以在其中定义适当的路径表达式,以便我为示例返回以下结果:

['SUBINLIST', 'SUBSUB', 'DEEPEST', 'TOPLEVEL']

注意:不是想通过递归Python函数找到键,而是通过调用a package/library/module (显然也会在内部执行此操作)。

我尝试了 jsonpath-rw,但无法想出一个表达式来查找任意嵌套的字典 列表中的值。

您可以尝试 jsonpath 如下:

import jsonpath

my_dict = {'info': [{'TEXT': 'SUBINLIST'},{'duda': {'TEXT': 'SUBSUB','walter': 'jaja'}}, {'hey': [{'jess': 'morning'}, {'TEXT': DEEPEST'}]}], 'TEXT': 'TOPLEVEL'}
print(jsonpath.jsonpath(my_dict, "$..TEXT"))

输出:

['TOPLEVEL', 'SUBINLIST', 'SUBSUB', 'DEEPEST']