JMESPath在嵌套数据中搜索密钥

时间:2019-02-25 12:16:46

标签: python json python-3.x

我正在尝试使用JMESPath的Python库从大型JSON文件中提取信息,此处是一个非常简化的示例:

{
  "high_name":"test",
  "sections":[
     {
        "name":"section1",
        "item":"string1"
     },
     {
        "name":"section2",
        "item":"string2",
        "items_sub":[
           {
              "item":"deeper string1"
           }
        ]
     }
  ]
}

我正在尝试获得这样的输出:

{
  "high_name":"test",
  "sections":[
     {
        "name":"section1",
        "items":[
           "string1"
        ]
     },
     {
        "name":"section2",
        "items":[
           "string1",
           "deeper string1"
        ]
     }
  ]
}

根据部分的类型,更深的字符串的深度可以为1到3级。我需要搜索键以获取所有匹配的“项目”名称。

我已经使用jsonpath-rw-ext成功完成了此操作,但想知道JMESPath是否有可能消除对两个库的依赖?

我似乎找不到一种搜索所有子键的方法,无论它们在JMESPath中的级别如何。

JSONPATH-RW-EXT的工作字符串:

$.sections[*]..item

使用JMESPath的最佳尝试(无效):

sections[*].*.item

谢谢

0 个答案:

没有答案