在 jinja2 模板中嵌套 for 循环

nested for loops in jinja2 template

我想通过 ansible playbook 解析带有 jinja2 模板的 yml 文件,并且无法获取带有嵌套 'for':[=13= 的内部数组(下例中的 'items') ]

有YML:

entities:
 - name: entity1
   desc: "entity 1 description"
   items:
     - desc: "item 11 description"
       name: item11
     - desc: "item 12 description"
       name: item12
 - name: entity2
   desc: "entity 2 description"
   items:
     - desc: "item 21 description"
       name: item2

有模板:

{% for i in entities %}

entity: {{ i.name }}
{% if i.desc is defined %} desc: {{ i.desc }} {% endif %}

{% if i.items is defined %}
items:
{% for j in i.items %}
- name: {{ j.name }}
- desc: {{ j.desc }}
{% endfor %}
{% endif %}

{% endfor %}

这行似乎不正确 ('builtin_function_or_method object is not iterable'):

{% for j in i.items %}

有没有办法遍历 'items' 数组?

items 是一个 function of a Python dict。要访问键 'items' 的值,请使用

{% for j in i['items'] %}