Eam*_*wes 2 json ansible jmespath
我正在尝试循环遍历键列表以从某些 json 中获取关联名称:
- name: show names
debug:
msg: "{{ data.json | json_query(query) }}"
vars:
query: "[? key==item].name"
with_items: "{{ keys.split() }}"
Run Code Online (Sandbox Code Playgroud)
但当我尝试运行它时,它永远不会正确显示。密钥正确,但没有返回数据:
TASK [get_help_on_SO: show]
ok: [localhost] => (item=Key1) => {
"msg": []
}
ok: [localhost] => (item=Key2) => {
"msg": []
}
Run Code Online (Sandbox Code Playgroud)
手动输入代码效果很好,所以我的查询语法似乎是正确的:
query: "[? key==`Key1`].name"
TASK [get_help_on_SO : show]
ok: [localhost] => (item=Key1) => {
"msg": [
"FooBar 1"
]
}
ok: [localhost] => (item=Key2) => {
"msg": [
"FooBar 1"
]
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能正确地将 传递item到 中json_query?
您没有item用任何 Jinja 分隔符包围该变量,因此不会解释它。
您结束测试 是否key等于字符串'item'而不是存储在变量 中的字符串item。
- name: show names
debug:
msg: "{{ data.json | json_query(query) }}"
vars:
query: "[?key==`{{ item }}`].name"
with_items: "{{ keys.split() }}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1539 次 |
| 最近记录: |