Ansible:根据属性条件获取字典的子列表
Ansible: get sublist of dictionaries based on attribute condition
我有这个字典列表:
some_list:
- name: alfa
dir: aaa
- name: beta
dir: bbb
- name: gamma
dir: ggg
我想通过 Ansible/Jinja 得到 some_list
的一个子集,它应该仍然是一个列表,它只包含具有 name in ['alfa', 'beta']
.
的字典
我将在 with_items
中使用子列表。
您可以使用 selectattr
filter along with the in
测试。
鉴于:
- debug:
var: some_list | selectattr('name', 'in', ['alfa', 'beta'])
这将产生:
TASK [debug] ******************************************************************
ok: [localhost] =>
some_list | selectattr('name', 'in', ['alfa', 'beta']):
- dir: aaa
name: alfa
- dir: bbb
name: beta
我有这个字典列表:
some_list:
- name: alfa
dir: aaa
- name: beta
dir: bbb
- name: gamma
dir: ggg
我想通过 Ansible/Jinja 得到 some_list
的一个子集,它应该仍然是一个列表,它只包含具有 name in ['alfa', 'beta']
.
我将在 with_items
中使用子列表。
您可以使用 selectattr
filter along with the in
测试。
鉴于:
- debug:
var: some_list | selectattr('name', 'in', ['alfa', 'beta'])
这将产生:
TASK [debug] ******************************************************************
ok: [localhost] =>
some_list | selectattr('name', 'in', ['alfa', 'beta']):
- dir: aaa
name: alfa
- dir: bbb
name: beta