Kar*_*arl 4 json jinja2 ansible
我的 ansible 变量中加载了一个 json 文件内容。
json 内容(以及我从中写入的结果文件)具有不必要的文件空间和空行。我想通过删除所有不必要的东西来缩小 json 文件。
是否可以做类似的事情{{ myjson_content| to_json_minify }}?
也许这可以通过正则表达式来完成?
您可以从 json 读取它并使用选项转换回 json separators。
{{ my_json_content | from_json | to_json(separators=(',',':')) }}
Run Code Online (Sandbox Code Playgroud)
注意:这没有记录,但是如果您查看源代码,您会发现过滤器接受任意关键字 args,这些关键字稍后会传递给 pythonjson.dumps函数。所以你基本上可以传递给to_json接受的任何参数json.dumps。
playbook.yml
---
- hosts: localhost
vars:
my_json_content:
'
{ "a" : 0,
"b": 1,
"c": 2}
'
tasks:
- debug:
msg: "json = {{ my_json_content }}"
- debug:
msg: "minified_json = {{ my_json_content | from_json | to_json(separators=(',',':')) }}"
Run Code Online (Sandbox Code Playgroud)
$ ansible-playbook playbook.yml
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "json = { \"a\" : 0,\n\"b\": 1,\n\"c\": 2}\n"
}
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "minified_json = {\"a\":0,\"c\":2,\"b\":1}"
}
Run Code Online (Sandbox Code Playgroud)