我有jinja2模板,它以'keys:value'的形式从yaml获取数据变量。在
问题是当我运行jinja2模板时,它将打印“value”为空的行。在
我怎样才能使它不打印空的行呢。否则,它将不显示。在
例如:
-模板set first {{ABC}}
set second {{DEF}}
set third {{GHI}}
-yaml数据
^{pr2}$
如果我运行这个,它会声明set first data1
set second None
set third data3
我不想这样。我想把它打印出来set first data1
set third data3
怎么做?通过防止在变量未定义时添加行。在
谢谢
更新的脚本:-TEMPLATE_FILE = { 'trial_1': 'trial.tcl' }
for f,s in TEMPLATE_FILE.items():
template = templateEnv.get_template( s )
with open('tmp.yaml', 'rb') as stream:
try:
yaml_input_data = yaml.load(stream)
except yaml.YAMLError as exc:
pass
print(yaml_input_data)
for k, v in yaml_input_data.items():
if v is None:
yaml_input_data.pop(k)
print(yaml_input_data)
with open(f, 'w') as outfile:
outfile.writelines(template.render(yaml_input_data))
print '\nWrote',f
更新jinja2模板{% for k, v in yaml_input_data.iteritems() %}
{# use k, v #}
set first {{ABC}}
set second {{DEF}}
set third {{GHI}}
{% endfor %}