在Ansible中,可以使用selectattr
过滤器和map
过滤器来从字典列表中筛选出几个元素。下面是一个示例:
假设我们有一个如下的字典列表:
my_list:
- name: element1
value: 10
- name: element2
value: 20
- name: element3
value: 30
现在,我们想要从这个列表中筛选出value
大于等于20的元素。可以使用以下代码示例:
- name: Filter dictionary list
hosts: localhost
gather_facts: false
vars:
my_list:
- name: element1
value: 10
- name: element2
value: 20
- name: element3
value: 30
tasks:
- name: Filter elements
debug:
msg: "{{ my_list | selectattr('value', '>=', 20) | list }}"
运行上述代码示例,将会输出筛选出的元素:
TASK [Filter elements] ******************************************************
ok: [localhost] => {
"msg": [
{
"name": "element2",
"value": 20
},
{
"name": "element3",
"value": 30
}
]
}
可以看到,只有value
大于等于20的元素被筛选出来了。