如何避免jinja2 + python打印YAML中没有“值”的行('key':'values')。
假设我在.yaml文件中有一个变量列表。例如:
- Fruit : Orange
- Color : Red
- Food : Noodle
我有一个模板,可以从yaml文件中获取数据。例如: -
- set fruit {{FRUIT}}
- set color {{COLOR}}
- set food {{FOOD}}
结果将打印为: -
set fruit Orange
set color Red
set food Noodle
但是,如果未定义一个或多个yaml数据(Color :
),为什么它将该变量的行打印为None(set color None
)?如何忽略没有'值'的行?。
答案 0 :(得分:0)
您可以在if statement中过滤掉空值的行:
{% if FRUIT %}
- set fruit {{FRUIT}}
{% endif %}
{% if COLOR %}
- set color {{COLOR}}
{% endif %}
{% if FOOD %}
- set food {{FOOD}}
{% endif %}
或者你有一个带键/值的词典,你可以在loop中使用它来使它更紧凑。例如:
dict_of_items = {'fruit': 'Orange', 'color': 'Red', 'food': 'Noodle'}
然后:
{% for key, value in dict_of_items.iteritems() %}
- set {{key}} {{value}}
{% endfor %}