使用字典递归循环中的Jinja缩进

2024-10-01 11:20:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用忍者写一个模板。但是我不能显示正确的缩进!我试了很多东西,但都没有达到预期的效果。 我有一本这样的字典:

videoNode = {'type': "VideoLoader",
            'config': {'type': "url",
                       'source': "blabla",
                       'frameBufferSize': 50,
                      }
            }

我想展示这样的东西

^{pr2}$

但我能得到的只有:

queueVideo1:
    type: VideoLoader
config:
   source: blabla
type: url
frameBufferSize: 50

这是我的档案:

{%- for key, value in videoNodes.iteritems() recursive -%}
    {%+ if value is mapping -%}
        {{ key }}:
        {{ loop(value.iteritems()) }}
    {%- else -%}
       {{ key }}: {{value}}
    {% endif %}
{%- endfor -%}

Tags: key模板configurlsource字典valuetype
2条回答

必须尝试使用缩进函数,并根据缩进级别指定值:

{{ key|indent(2, true) }}

您可以看到the documentation here

我发现使用多个缩进过滤器有助于保持yaml文件缩进的清晰。否则会有点困惑:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ name }}
  namespace: {{ namespace }}
data:
{% filter indent(2) %}
customResourceDefinitions: |-
  {% filter indent(2) %}
    {%- for crd in crds -%}
    - {{ crd.content|indent(2) }}
    {%- endfor -%}
  {% endfilter %}

相关问题 更多 >