You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jinja模板渲染YAML结构不符预期,求正确写法

正确的Jinja模板编写方案

目标输出YAML结构

animals:
  my_pets:
    - species:
        name: Buddy
        age: 3
    - species:
        name: Muffin
        age: 5

匹配的输入YAML(fixed_input.yaml)

animals:
  my_pets:
    - species:
        name: Buddy
        age: 3
    - species:
        name: Muffin
        age: 5

正确的Jinja模板(fixed_template.jinja)

animals:
  my_pets:
{% for pet in animals.my_pets %}
    - species:
        name: {{ pet.species.name }}
        age: {{ pet.species.age }}
{% endfor %}

关键说明

  1. 层级保留:模板开头直接写出animals和my_pets的层级,确保输出结构和目标完全对齐。
  2. 列表遍历:用{% for pet in animals.my_pets %}循环遍历输入中的宠物列表,每个循环生成一个YAML列表项(以-开头)。
  3. 嵌套字段渲染:通过pet.species.name和pet.species.age直接访问嵌套字段,同时严格遵循YAML缩进规则(species下的子字段比species:缩进4个空格,列表项的-比my_pets:缩进4个空格)。

如果你的输入YAML是扁平化存储的(比如将物种名称、年龄作为独立字段),可以调整模板适配:

扁平化输入YAML示例

animals:
  my_pets:
    - species_name: Buddy
      species_age: 3
    - species_name: Muffin
      species_age: 5

对应调整后的模板

animals:
  my_pets:
{% for pet in animals.my_pets %}
    - species:
        name: {{ pet.species_name }}
        age: {{ pet.species_age }}
{% endfor %}

内容的提问来源于stack exchange,提问作者Math

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:05:52