Ansible - 在不知道 object/key 名称的情况下嵌套循环对象
Ansible - nested loop over object without knowing object/key name
我正在编写一个 ansible 剧本,我需要从 JSON API 结果中获取一个值。
我想在不知道前一个对象 (sd#eureka...) 的情况下获取键“1h”的值,并且我需要遍历所有结果和所有存储桶。
{
"etat_ms_rep": {
"results": [
{
"buckets": {
"sd#eureka#pixidanalyticsbackend#c3fb422bb36882d9f502092fd75fcb34": {
"1h": -1,
"1m": -1
},
"sd#eureka#pixidanalyticsbackend#348fdab155904e22ca0c744d0c052cf8": {
"1h": 100,
"1m": 100
}
}
},
{
"buckets": {
"sd#eureka#pixidorchestratorbackend#8fa3441c6c5caa2d5f0e3264a00be91b": {
"1h": 100,
"1m": 100
},
"sd#eureka#pixidorchestratorbackend#6dc48be83cb86ae1a73b344e9421ed8e": {
"1h": 100,
"1m": 100
}
}
}
]
}
}
我试过了,但没有成功,它没有显示“1h”键的值...
- name: Display all bucket info
set_fact:
test: "{{ etat_ms_rep.results | json_query(jmesquery) }}"
vars:
jmesquery: " [*].['1h'] "
例如
- name: Get the value of the key 1h
debug:
msg: "{{ etat_ms_rep.results | json_query(jmesquery) }}"
vars:
jmesquery: '[].*.*.["1h"]'
给予
msg:
- - - - -1
- - 100
- - - - 100
- - 100
如果需要,请展平列表
- name: Get the value of the key 1h
debug:
msg: "{{ etat_ms_rep.results | json_query(jmesquery) | flatten }}"
vars:
jmesquery: '[].*.*.["1h"]'
给予
msg:
- -1
- 100
- 100
- 100
我正在编写一个 ansible 剧本,我需要从 JSON API 结果中获取一个值。 我想在不知道前一个对象 (sd#eureka...) 的情况下获取键“1h”的值,并且我需要遍历所有结果和所有存储桶。
{
"etat_ms_rep": {
"results": [
{
"buckets": {
"sd#eureka#pixidanalyticsbackend#c3fb422bb36882d9f502092fd75fcb34": {
"1h": -1,
"1m": -1
},
"sd#eureka#pixidanalyticsbackend#348fdab155904e22ca0c744d0c052cf8": {
"1h": 100,
"1m": 100
}
}
},
{
"buckets": {
"sd#eureka#pixidorchestratorbackend#8fa3441c6c5caa2d5f0e3264a00be91b": {
"1h": 100,
"1m": 100
},
"sd#eureka#pixidorchestratorbackend#6dc48be83cb86ae1a73b344e9421ed8e": {
"1h": 100,
"1m": 100
}
}
}
]
}
}
我试过了,但没有成功,它没有显示“1h”键的值...
- name: Display all bucket info
set_fact:
test: "{{ etat_ms_rep.results | json_query(jmesquery) }}"
vars:
jmesquery: " [*].['1h'] "
例如
- name: Get the value of the key 1h
debug:
msg: "{{ etat_ms_rep.results | json_query(jmesquery) }}"
vars:
jmesquery: '[].*.*.["1h"]'
给予
msg:
- - - - -1
- - 100
- - - - 100
- - 100
如果需要,请展平列表
- name: Get the value of the key 1h
debug:
msg: "{{ etat_ms_rep.results | json_query(jmesquery) | flatten }}"
vars:
jmesquery: '[].*.*.["1h"]'
给予
msg:
- -1
- 100
- 100
- 100