我想在jinja2中渲染json文件(不幸的是,是否必须仅使用jinja2完成)。我认为最简单的方法是将dict传递给to_json过滤器。
{{ content | to_json }}
我希望内容字典由键(即键)组成。 abc,cde值从ansible传递给jinja,所以我会这样:
{% set content = {'abc' : abc, 'cde' : cde} %}
某些值可能是不确定的,并且独立的内容会呈现如下形式:
{{ content }}
{'abc':3,'cde':未定义}
如何从内容字典中过滤此未定义的值,以便to_json可以正常工作?
当我输入
{{ content | to_json }}
我明白了
AnsibleError:发生了意外的模板类型错误({%set content = {'bridge_ip':bridge_ip,'insecure_registries':insecure_registries}%} {{content | to_json}}):未定义不是JSON可序列化的
编辑: 我设法做到这一点,但我想知道是否有更清洁的方法:
{{ content | dict2items| rejectattr("value", "undefined") | list | items2dict | to_json }}