类似Xpath的Python包,用于在列表和dict中查找所有级别的键
给定的是一个数据结构,其键类似Xpath的Python包,用于在列表和dict中查找所有级别的键,python,list,dictionary,xpath,packages,Python,List,Dictionary,Xpath,Packages,给定的是一个数据结构,其键TEXT位于结构中的任意位置,如以下示例所示: {'info': [ {'TEXT': 'SUBINLIST'}, {'duda': { 'TEXT': 'SUBSUB', 'walter': 'jaja'}} {'hey': [ {'jess': 'morning'}, {'TEXT': 'DEEPEST'}
TEXT
位于结构中的任意位置,如以下示例所示:
{'info': [
{'TEXT': 'SUBINLIST'},
{'duda': {
'TEXT': 'SUBSUB',
'walter': 'jaja'}}
{'hey': [
{'jess': 'morning'},
{'TEXT': 'DEEPEST'}
]}
],
'TEXT': 'TOPLEVEL'}
我想找到文本
键的值。是否有一个类似XPath的Python包,我可以在其中定义适当的路径表达式,以便为示例返回以下结果:
['SUBINLIST', 'SUBSUB', 'DEEPEST', 'TOPLEVEL']
注意:我不想通过递归Python函数来查找键,而是通过调用包/库/模块来查找键(这显然在内部也会这样做)
我试过了,但找不到一个表达式,它可以在任意嵌套的dict和list中查找值。您可以尝试如下操作:
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"))
输出:
有。好的,那么表达式是如何通过jmsepath或objectpath中的所有子目录和子列表获取所有
TEXT
值的呢?酷!XPATH表达式“$…TEXT”通过jsonpath
——这正是我想要的。谢谢顺便说一句,为了完整性:库jsonpath rw
也适用于XPATH表达式。
['TOPLEVEL', 'SUBINLIST', 'SUBSUB', 'DEEPEST']