Ansible 为什么变量中有额外的空白{}?
试图创建一个字典,我发现返回的数据集中有额外的空白{}。试图通过以下几种方式解决问题Ansible 为什么变量中有额外的空白{}?,ansible,jinja2,Ansible,Jinja2,试图创建一个字典,我发现返回的数据集中有额外的空白{}。试图通过以下几种方式解决问题 - name: thing set_fact: makeDict: " {% set BuildArr = [] -%} {%- for number in range(1, 5) -%} { {% set ignored = BuildArr.extend([{ 'Number1': number|
- name: thing
set_fact:
makeDict: "
{% set BuildArr = [] -%}
{%- for number in range(1, 5) -%}
{ {% set ignored = BuildArr.extend([{
'Number1': number|string,
'Number2': number|string,
'Number3': number
}]) -%}}
{%- endfor %}
{{ BuildArr }}"
- name: try_again
debug:
var: UserGroupArray
输出:
TASK [try_again] ***********************************************************************************************************************ok: [localhost] => {
"UserGroupArray": " { }{ }{ }{ } [{'Number2': u'1', 'Number3': 1, 'Number1': u'1'}, {'Number2': u'2', 'Number3': 2, 'Number1': u'2'}, {'Number2': u'3', 'Number3': 3, 'Number1': u'3'}, {'Number2': u'4', 'Number3': 4, 'Number1': u'4'}]"
}
我在返回的数据集中看到额外的空白{}
因为你放了一个。此块中的第一个{
和最后一个}
不是Jinja模板标记,它们是文本{
和}
:
{ {% set ignored = BuildArr.extend([{
'Number1': number|string,
'Number2': number|string,
'Number3': number
}]) -%}}
我想你想要:
{% set ignored = BuildArr.extend([{
'Number1': number|string,
'Number2': number|string,
'Number3': number
}]) -%}
我在返回的数据集中看到额外的空白{}
因为你放了一个。此块中的第一个{
和最后一个}
不是Jinja模板标记,它们是文本{
和}
:
{ {% set ignored = BuildArr.extend([{
'Number1': number|string,
'Number2': number|string,
'Number3': number
}]) -%}}
我想你想要:
{% set ignored = BuildArr.extend([{
'Number1': number|string,
'Number2': number|string,
'Number3': number
}]) -%}
可以使用combine而不是extend。例如下面的剧本
- name: Create my_dict
set_fact:
my_dict: "{{ my_dict|default({})|combine({('No' + item): item}) }}"
with_sequence: start=1 end=4
- debug:
var: my_dict
给出:
"my_dict": {
"No1": "1",
"No2": "2",
"No3": "3",
"No4": "4"
}
可以使用combine而不是extend。例如下面的剧本
- name: Create my_dict
set_fact:
my_dict: "{{ my_dict|default({})|combine({('No' + item): item}) }}"
with_sequence: start=1 end=4
- debug:
var: my_dict
给出:
"my_dict": {
"No1": "1",
"No2": "2",
"No3": "3",
"No4": "4"
}
尝试使用循环在数据集上迭代。我只是以这些数字为例。否则,这完全有效。尝试使用循环在数据集上迭代。我只是以这些数字为例。否则,这完全有效。