我可能遗漏了一些东西,或者这可能只是布局支柱数据的错误方式。
我想遍历第二级支柱数据。
支柱示例:
repo:
Option1:
version1:
display_name: "abcde"
version2:
display_name: "fghij"
Option2:
version1:
display_name: "klmn"`
注释:
{% for version, versioninfo in salt['pillar.get']('repo', {}).iteritems() %}
{{ versioninfo[] }}{{ versioninfo[]['display_name'] }}
{% endfor %}`
我想返回每个版本和显示名称,有效地忽略第一级支柱数据。显然上面的 jinja 不起作用,但是有办法做到这一点吗?
答案1
您需要两级迭代。.iteritems()
返回该键的键和值(项)。第一次迭代将使您能够访问选项名称和版本。第二次迭代将为您提供 display_name。
{% for option, versions in salt['pillar.get']('repo', {}).iteritems() %}
{% for version, info in versions.iteritems() %}
{{ version }}:{{ info['display_name'] }}
{% endfor %}
{% endfor %}
或者你可以这样做:
{% for option, versions in salt['pillar.get']('repo', {}).iteritems() %}
{% for version in versions %}
{{ version }}:{{ versions[version]['display_name'] }}
{% endfor %}
{% endfor %}