使用ANSIBLE:我从url获取json响应并引发响应但无法打印特定的键/值。 (请参阅json响应)在我的脚本中我会传递服务,所以我只想在标签下打印特定版本的服务。例如,我将abc作为参数传递给ansible playbook,然后我想在该Tags下打印版本。我试过json查询过滤器,但无法得到这个。
- name: Get url response
uri:
url: http://localhost:8500/myurl...
return_content: yes
register: json_response
- name: print json_response
debug:
var: json_response
- name: print the response
set_fact:
msg: "{{ json_response | from_json| json_query('Tags['build=*')}}"
我的json回复就是这样。
"json": {
"abc": {
"Tags": [
"version=3.5"
]
},
"xyz": {
"Tags": [
"version=4.6.2"
]
},
"asd": {
"Tags": [
"version=9.1.2"
]
}
}
非常感谢任何帮助。
答案 0 :(得分:0)
评论中的回答:
此处唯一可以解决的问题是您需要将
json_query
过滤器应用于json_response.json
。至于JMESPath表达式,请花一些时间在jmespath.org找出表达式本身。