在Ansible中的列表中循环列表
我在Ansible中有一个简单的多级列表:在Ansible中的列表中循环列表,ansible,jinja2,ansible-template,Ansible,Jinja2,Ansible Template,我在Ansible中有一个简单的多级列表: elements: - 'aaaa': - '1111' - '2222' - 'bbbb': - '3333' - '4444' 我的模板看起来像: {% for level1 in elements %} {% for level2 in level1 %} {{ level2 }}
elements:
- 'aaaa':
- '1111'
- '2222'
- 'bbbb':
- '3333'
- '4444'
我的模板看起来像:
{% for level1 in elements %}
{% for level2 in level1 %}
{{ level2 }}
{% endfor %}
{% endfor %}
输出为:
aaaa
bbbb
但我想要一些类似的东西:
aaaa:1111222 bbbb:3333444
如何修改此jinja joop以获得此结果?因此基本上您必须遍历级别1的项目 更新的Jinja2查询是 输出:
所以基本上你必须遍历level1的项目 更新的Jinja2查询是 输出: 问:想要类似的东西吗 aaaa:1111222 bbbb:3333444 A:下面的任务就可以了 -调试: 味精:| {level1在元素%}{{level1.keys | first}}中的百分比: {%-用于级别1中的v。值|第一个%}{{v} {%-endfor%}{%endfor%} 给予 aaaa:1111222 bbbb:3333444 问:想要类似的东西吗 aaaa:1111222 bbbb:3333444 A:下面的任务就可以了 -调试: 味精:| {level1在元素%}{{level1.keys | first}}中的百分比: {%-用于级别1中的v。值|第一个%}{{v} {%-endfor%}{%endfor%} 给予 aaaa:1111222 bbbb:3333444
谢谢,但那不起作用。输出是:'aaaa',['1111','2222']…@Janek更新了答案。谢谢,谢谢,但那不行。输出是:'aaaa',['1111','2222']…@Janek更新了答案。谢谢
{%- for level1 in elements -%}
{%- for key, value in level1.iteritems() -%}
{{ key }}: {{ value|join(' ') }}
{%- endfor -%}
{% if not loop.last %} {% endif %}
{%- endfor -%}
aaaa: 1111 2222 bbbb: 3333 4444