如何更改列表中的元素或在循环中使用 "if else" 来分配元素
how to change a element from a list or use "if else" within a loop to assign element
我正在查询 table 并且我只对“名称”列感兴趣。 table 作为字典列表返回,因此我从每个条目中提取“名称”并将其添加到列表中。问题是,如果名称具有特定值,例如“N/A”,我不希望我填充的新列表包含值“N/A”,而是另一个值,因为实例“跳过”。这是我正在做的一个不起作用的例子,列表保持不变:
- name: Extract "name" column from table and append it to new_list
set_fact:
new_list: "{{ new_list + [item.name] }}"
loop: "{{queried_table.record}}"
- name: Iterate through new_list and change "N/A" elements to "skip"
set_fact:
current_name: "skip"
when: current_name == "N/A"
loop: "{{new_list}}"
loop_control:
loop_var: current_name
我想做的,但是在伪代码中:
- name: Extract "name" column from table and append it to new_list
set_fact:
new_list: "{{ if(item.name == "N/A"){
append the word "skip" to new_list instead of "N/A"
}else{append item.name onto new_list}
}}"
loop: "{{queried_table.record}}"
问:“从每个条目中提取 'name' ...用 'skip' 替换 'N/A'”。“=28=]
A:例如,给定下面的table进行测试
queried_table:
record:
- {name: r1, rec: data}
- {name: r2, rec: data}
- {name: N/A, rec: none}
map the attribute name and regex_replace 项
new_list: "{{ queried_table.record|
map(attribute='name')|
map('regex_replace', 'N/A', 'skip')|
list }}"
给予
new_list: [r1, r2, skip]
将new_list的声明适当放入vars
我正在查询 table 并且我只对“名称”列感兴趣。 table 作为字典列表返回,因此我从每个条目中提取“名称”并将其添加到列表中。问题是,如果名称具有特定值,例如“N/A”,我不希望我填充的新列表包含值“N/A”,而是另一个值,因为实例“跳过”。这是我正在做的一个不起作用的例子,列表保持不变:
- name: Extract "name" column from table and append it to new_list
set_fact:
new_list: "{{ new_list + [item.name] }}"
loop: "{{queried_table.record}}"
- name: Iterate through new_list and change "N/A" elements to "skip"
set_fact:
current_name: "skip"
when: current_name == "N/A"
loop: "{{new_list}}"
loop_control:
loop_var: current_name
我想做的,但是在伪代码中:
- name: Extract "name" column from table and append it to new_list
set_fact:
new_list: "{{ if(item.name == "N/A"){
append the word "skip" to new_list instead of "N/A"
}else{append item.name onto new_list}
}}"
loop: "{{queried_table.record}}"
问:“从每个条目中提取 'name' ...用 'skip' 替换 'N/A'”。“=28=]
A:例如,给定下面的table进行测试
queried_table:
record:
- {name: r1, rec: data}
- {name: r2, rec: data}
- {name: N/A, rec: none}
map the attribute name and regex_replace 项
new_list: "{{ queried_table.record|
map(attribute='name')|
map('regex_replace', 'N/A', 'skip')|
list }}"
给予
new_list: [r1, r2, skip]
将new_list的声明适当放入vars