如何在 Jinja2 模板中呈现文字 'null'

How to render a literal 'null' in Jinja2 Template

我正在开发一个允许用户与 REST 交互的 ansible 角色 API。我创建了 json.j2 模板,允许我构建消息负载并最终提交。其中一个字段需要字符串值 ("") 或 null.

{
  "value": "{{ example.value | default(null, true) }}"
}

这不起作用,我收到此错误:

The task includes an option with an undefined variable. The error was: 'null' is undefined

我需要那个空值,如果没有提供其他值,我需要作为默认值输入。
我该怎么做?

正如 所指出的,null 在 Python 中没有任何意义,None 是 Python 表示您正在寻找的内容。

现在,如果您想将其转换为 JSON 值,那么 Ansible 中有一个 to_json 过滤器,因此:

'{ "value": {{ example.value | default(None, true) | to_json }} }'

最终会变成:

{ "value": null }