я есть этот шаблон в дзиндзя:Получить значение различной итерации - jinja2
{% for value in id_ip.results %}
{
"title": "asd",
"rel":"adas",
"type":"application/nalip+json",
"href": "https://www.api.com:443/api/{{item.item.stdout}}/{{item.stdout}}"
}{% if loop.last %},{% endif %}
{% endfor %}
переменных собирают из списка JSON, которым приходят из анзибль задачи с 2 итерациями:
- name: Define templatesssss
template:
src: requestpayload.j2
dest: /tmp/requestpayload.j2
owner: root
group: root
mode: 0644
with_items:
- "{{id_ip.results}}"
И id_ip.results
имеют две итерации этого JSON.
"invocation": {
"module_args": {
"var": "item"
},
"module_name": "debug"
},
"item": {
"changed": true,
"invocation": {
"module_args": {
"warn": true
},
"module_name": "command"
},
"item": {
"changed": true,
"invocation": {
"module_args": {
"warn": true
},
"module_name": "command"
},
"item": {
"gateway": "1",
"ip": "2"
},
"stdout": "62",
"stdout_lines": [
"62"
],
"warnings": []
},
"stdout": "316",
"stdout_lines": [
"316"
],
"warnings": []
}
}
Im заинтересован в stdout's
, потому что это значение, которое я должен принять в шаблоне. Результат шаблона заключается в следующем:
{
"title": "asd",
"rel":"adas",
"type":"application/vnd.externalip+json",
"href": "https://servicios.com:443/api/limits/2/externalnetworks/62/ips/316"
} {
"title": "asd",
"rel":"adas",
"type":"application/vnd.externalip+json",
"href": "https://servicios.com:443/api/limits/2/externalnetworks/62/ips/316"
Как вы можете видеть, что значения и в обоих пунктов, было бы хорошо, если бы только одна итерация, но мне нужно пройти вторых итераций во второй сектор.
Как я могу это сделать?
Вашего JSON не имеет ключ 'results' который вы ссылаетесь, вместо этого он имеет синтаксическую ошибку - сохраняющуюся запятую в'«ф»:«2»,' Как насчет вы публикуете полный, согласованный и проверяемый пример? Если вас это не волнует, зачем кому-то еще заботиться? – techraf