You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible遍历未知键名嵌套对象提取1h字段值的实现问题

解决方法

你需要调整JMESPath查询语句,先定位到buckets对象,再用*通配符匹配所有动态键对应的子对象,最后提取1h属性值。

原写法错误原因

你原来的查询直接在results数组元素下查找1h属性,跳过了buckets层,也没有对buckets下的动态键做通配匹配,所以无法定位到目标值。

正确的Playbook写法

- name: 提取所有1h对应值
  set_fact:
    test: "{{ etat_ms_rep.results | json_query(jmesquery) }}"
  vars:
    jmesquery: '[*].buckets.*."1h"'

结果说明

执行后得到的test默认是二维数组结构:[[-1, 100], [100, 100]]
如果你需要得到扁平化的一维数组,可以加上flatten过滤器:

- name: 提取所有1h对应值并扁平化
  set_fact:
    test: "{{ etat_ms_rep.results | json_query(jmesquery) | flatten }}"
  vars:
    jmesquery: '[*].buckets.*."1h"'

执行后test值为:[-1, 100, 100, 100]

内容的提问来源于stack exchange,提问作者Flo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:36:04