Я, должно быть, упускаю что-то очевидное. Мне нужно извлечь значение из одного ключа в заголовке ответа на вызов GET API.
Я пытаюсь получить значение client_version , но не могу извлечь эти данные.
Версия Anisble: 2.4.2.0
playbook:
- name: Get test client version
uri:
url: "{{ current_client_version_url }}"
method: GET
header:
Content-Type: "application/json"
register: resp
- debug: msg={{ resp }}
Вывод:
{
"msg": {
"content_length": "180",
"status": 200,
"cookies": {},
"x_ratelimit_reset": "1",
"json": {
"defaultContainerAlias": "_default",
"exchangeContainerAlias": null,
"hasContainersEnabled": true,
"hasExchangeEnabled": false,
"hasTargetedOffers": false,
"autoDeleteItemReferences": false
},
"url": "https://some.url.goes.here.com/v1/subdir/metadata",
"changed": false,
"vary": "Accept-Encoding, User-Agent",
"x_envoy_upstream_service_time": "3",
"failed": false,
"connection": "close",
"content_type": "application/json;charset=utf-8",
"client_version": "1a2b3c4d5f",
"date": "Tue, 04 Aug 2020 22:34:34 GMT",
"redirected": false,
"x_ratelimit_remaining": "197",
"msg": "OK (180 bytes)"
},
"changed": false,
"_ansible_verbose_always": true,
"_ansible_no_log": false
}
Я предполагал, что это будет обычный Ansible вывод, и попробовал:
resp.msg.client_version
resp.msg ['client_version']
resp.msg [client_version]
Когда я ссылаюсь на resp.msg в операторе отладки, я просто получаю:
"msg": "OK (180 bytes)"
, что для меня не имеет смысла ...
Помощь приветствуется.