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']
给定的是一个数据结构,它在结构中的任意位置具有键 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']