我想过滤这个变量 hp 但它打印为方括号和""
. 我如何删除方括号""
以获得唯一的值。有人可以帮忙吗?我正在寻找正则表达式,但无法找到确切的语法。
srv_make1: '{{ basic_params | from_json | json_query("servers.server_details[*].srv_make") }}'
谢谢
我想过滤这个变量 hp 但它打印为方括号和""
. 我如何删除方括号""
以获得唯一的值。有人可以帮忙吗?我正在寻找正则表达式,但无法找到确切的语法。
srv_make1: '{{ basic_params | from_json | json_query("servers.server_details[*].srv_make") }}'
谢谢
我有类似的东西。越来越
["abc"]
为了克服它,必须做两件事:
| [0]
到 json 查询"
所以在你的情况下,而不是
srv_make1: '{{ basic_params | from_json | json_query("servers.server_details[*].srv_make") }}'
它看起来像
srv_make1: '{{ basic_params | from_json | json_query("servers.server_details[*].srv_make | [0]") | replace('\"','') }}'
问:“如何去掉方括号和双引号?”
json_query
总是返回一个列表。这取决于debug
如何显示列表的任务。例如
vars:
srv_make1: [a,b,c]
tasks:
- debug:
var: srv_make1
- debug:
msg: "{{ srv_make1|to_yaml }}"
给
TASK [debug] ***
ok: [localhost] => {
"srv_make1": [
"a",
"b",
"c"
]
}
TASK [debug] ***
ok: [localhost] => {
"msg": "[a, b, c]\n"
}
可以使用template
列表并将其写入不带括号和引号的文件中。例如模板
shell> cat srv_make1.conf.j2
{% for item in srv_make1 %}{{ item }} {% endfor %}
带着任务
- template:
src: srv_make1.conf.j2
dest: srv_make1.conf
给
shell> cat srv_make1.conf
a b c