Ansible:删除 json 文件中的空格
Ansible: Remove whitespaces in json file
我的 ansible 变量中加载了一个 json 文件内容。
json 内容(以及我从中写入的结果文件)有不必要的文件空间和空行。我想通过删除所有不必要的内容来缩小 json 文件。
是否可以做类似 {{ myjson_content| to_json_minify }}
的事情?
也许这可以通过正则表达式来完成?
您可以从 json 读取它并使用 separators
选项转换回 json。
{{ my_json_content | from_json | to_json(separators=(',',':')) }}
注意:这个没有文档,但是如果你看source code you will see that the filter accepts arbitrary keywords args which are later passed to the python json.dumps
function。因此,您基本上可以将 json.dumps
.
接受的任何参数传递给 to_json
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=(',',':')) }}"
$ 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}"
}
我的 ansible 变量中加载了一个 json 文件内容。
json 内容(以及我从中写入的结果文件)有不必要的文件空间和空行。我想通过删除所有不必要的内容来缩小 json 文件。
是否可以做类似 {{ myjson_content| to_json_minify }}
的事情?
也许这可以通过正则表达式来完成?
您可以从 json 读取它并使用 separators
选项转换回 json。
{{ my_json_content | from_json | to_json(separators=(',',':')) }}
注意:这个没有文档,但是如果你看source code you will see that the filter accepts arbitrary keywords args which are later passed to the python json.dumps
function。因此,您基本上可以将 json.dumps
.
to_json
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=(',',':')) }}"
$ 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}"
}