I have the following jinja2 template
[
{% for items in hosts %}
{
"name":"{{ items.name }}",
"display_name":"{{ items.display_name }}",
"services": {{ host_group | from_json | json_query('[*].services[0]') | to_json }},
}
{% endfor %}
]
i need to replace services[0] by a variable {{ loop.index0 }}, i tried this syntax
"services": {{ host_group | from_json | json_query('[*].services[loop.index0]') | to_json }}
but i'm getting an error :
AnsibleFilterError: JMESPathError in json_query filter plugin:
Expecting: star, got: unquoted_identifier: Parse error at column 13, token "loop" (UNQUOTED_IDENTIFIER), for expression:
"[*].services[loop.index0]"
I tried another syntax:
"services": {{ host_group | from_json | json_query('[*].services[' + {{ loop.index0 }} +']') | to_json }},
and it gives also an error :
AnsibleError: template error while templating string: expected token ':', got '}'. String: [