Я хочу отобразить файл json в jinja2 (к сожалению или нет, это нужно сделать только с использованием jinja2).Я считаю, что самый простой способ сделать это - передать dict в фильтр to_json.
{{ content | to_json }}
Я хочу, чтобы содержание dict состояло из ключа, т.е.abc, cde, какие значения передаются в jinja из ansible, поэтому я бы сделал это следующим образом:
{% set content = {'abc' : abc, 'cde' : cde} %}
Некоторые значения могут быть неопределенными, а автономный контент отображается примерно так:
{{ content }}
{'abc': 3, 'cde': Undefined}
Как я могу отфильтровать эти неопределенные значения из словаря содержимого, чтобы to_json мог работать правильно?
Когда я набираю
{{ content | to_json }}
Я получаю
AnsibleError: Произошла непредвиденная ошибка типа шаблона ({% set content = {'bridge_ip': bridge_ip, 'insecure_registries': insecure_registries}%} {{content | to_json}}): Undefined не является JSON-сериализуемым
Редактировать: мне это удается, но мне интересно, есть ли более чистый путь:
{{ content | dict2items| rejectattr("value", "undefined") | list | items2dict | to_json }}