[Python] jinja2 - loop through a dictionary

Discussão em 'Python' iniciado por Stack, Junho 19, 2025.

  1. Stack

    Stack Membro Participativo

    I am new with Jinja2 maybe my question is noobie but I can't understand it.

    So I use Jinja2 for an Ansible task as a template to create a file, I have a dictionary defined in the Default Variable file like:

    test123:
    testA:
    name: test1
    number: 1
    path: /tmp/test.txt
    testB:
    name: test2
    number: 2
    path: /tmp/test.txt


    Now in my Jinja2 file, I want to loop through this dictionary and print everything defined in the dictionary.

    I tried various examples but nothing does the right thing.

    For example:

    {% for item in test123.values() -%}
    {{ item.name }}="{{ item.number }}"
    {%- endfor %}
    {% for item in test123.testB.values() -%}
    {{ item.name }}="{{ item.number }}"
    {%- endfor %}


    Error Message:


    fatal: [testserver]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'ansible.parsing.yaml.objects.AnsibleUnicode object' has no attribute 'name'"}
    ​

    I thought maybe the best thing would be to create a while loop for this and print everything out but since in Jinja2 there is no while loop I am a little bit confused how to do it.

    Do someone has an idea how to achieve that? So once again the goal is to print everything from the dictionary in the Jinja2 file.

    Thank you in advance

    Continue reading...

Compartilhe esta Página