jinja2 - 循环字典

Mla*_*lic 2 python jinja2 ansible

我是新手,Jinja2也许我的问题很菜鸟,但我无法理解。

因此,我使用Jinja2任务Ansible作为模板来创建文件,我在默认变量文件中定义了一个字典,如下所示:

test123:
  testA:
    name: test1
    number: 1
    path: /tmp/test.txt
  testB:
    name: test2
    number: 2
    path: /tmp/test.txt
Run Code Online (Sandbox Code Playgroud)

现在在我的Jinja2文件中,我想循环遍历该字典并打印字典中定义的所有内容。

我尝试了各种例子,但没有一个是正确的。

例如:

{% for item in test123.values() -%}
{{ item.name }}="{{ item.number }}"
{%- endfor %} 
{% for item in test123.testB.values() -%}
    {{ item.name }}="{{ item.number }}"
{%- endfor %} 
Run Code Online (Sandbox Code Playgroud)

错误信息:

致命:[测试服务器]:失败!=> {“changed”:false,“msg”:“AnsibleUndefinedVariable:'ansible.parsing.yaml.objects.AnsibleUnicode对象'没有属性'名称'”}

我认为最好的办法可能是为此创建一个 while 循环并将所有内容打印出来,但由于Jinja2没有 while 循环,我有点困惑如何做到这一点。

有人知道如何实现这一目标吗?因此,目标再次是打印文件中字典中的所有内容Jinja2

先感谢您

err*_*404 5

下面将创建一个包含所有用户名的输出

{% for item in test123.values() %}
name of the user: {{ item.name }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

输出格式:

name of the user: test1
name of the user: test2
Run Code Online (Sandbox Code Playgroud)

如果您需要特定格式的内容,请告诉我所需的输出