Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类似Xpath的Python包,用于在列表和dict中查找所有级别的键_Python_List_Dictionary_Xpath_Packages - Fatal编程技术网

类似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']