下面是我的input.yaml和template.jinja
input.yaml
animals:
my_pets:
- species:
name: "cat"
age: "28"
- species:
name: "dog"
age: "10"template.jinja
{%- for pet in animals.my_pets %}
Type: {{ pet.species.name }}
Name: {{ pet.species.age }}
{%- endfor %}结果应该类似于input.yaml
animals:
my_pets:
- species:
name: "cat"
age: "28"
- species:
name: "dog"
age: "10"当然,在我的模板上有些东西不对,因为它没有呈现预期的结构,但是我找不到什么。
我做了一些修改,不知何故起作用了,但不像预期的那样。
new_input.yaml
my_pets:
- species:
- name: "cat"
- age: "28"
- species:
- name: "dog"
- age: "10"new_template.jinja:
my_pets:
{%- for intf in my_pets %}
{%- for i in intf.species %}
{%- for key,value in i.items() %}
- species:
- {{ key }}: "{{ value }}"
{%- endfor %}
{%- endfor %}
{%- endfor %}new_output是这样的:
my_pets:
- species:
- name: "cat"
- species:
- age: "28"
- species:
- name: "dog"
- species:
- age: "10"但应该是这样的:
animals:
my_pets:
- species:
name: "cat"
age: "28"
- species:
name: "dog"
age: "10"发布于 2022-11-28 13:25:35
在一个循环中:
{%- for key,value in dict.items() %}
{%- endfor %}您要做的是循环字典的不同属性--在您的例子中是name和age,因此:
-启动您的行,否则您将创建一个列表:{%-用于键,值在dict.items() %} { key }:"{{值}}“{%- endfor %}中
species应该在循环的顶部,而不是在循环中:-。
给定您的输入,此循环将重新创建与输入相同的字典列表:
my_pets:
{%- for pet in animals.my_pets %}
- species:
{%- for key, value in pet.species.items() %}
{{ key }}: "{{ value }}"
{%- endfor %}
{%- endfor %}https://stackoverflow.com/questions/74591047
复制相似问题