jmespath:如何搜索字典结构的字典

问题描述

本教程中有一个搜索示例:

{
  "machines": [
    {"name": "a","state": "running"},{"name": "b","state": "stopped"},"state": "running"}
  ]
}
In [68]: jmespath.search("machines[?state=='running'].name",p)
Out[68]: ['a','b']

但是,我的结构使用字典而不是列表,例如:

In [64]: q={
    ...:   "machines": {
    ...:     "m1":     {"name": "a",...:     "m2":     {"name": "b",...:     "m3":     {"name": "c","state": "running"}
    ...:     }
    ...:     }

我对此进行的其他尝试均失败了:

In [65]: jmespath.search("machines[?state=='running'].name",q)
# no output
In [66]: jmespath.search("machines.*[?state=='running'].name",q)
Out[66]: []

In [67]: jmespath.search("machines[*][?state=='running'].name",q)
# no output

如何执行此搜索?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)