在Ansible中的目录列表中搜索关键字
我有一个字典列表,看起来类似于以下内容:在Ansible中的目录列表中搜索关键字,ansible,jinja2,Ansible,Jinja2,我有一个字典列表,看起来类似于以下内容: "subnets": [ { "name": "subnet1-name34554", "address": "192.168.1.100" "id: "id1" }, { "name": "subnet2-name67678", "addr": "192.168.1.200"
"subnets": [
{
"name": "subnet1-name34554",
"address": "192.168.1.100"
"id: "id1"
},
{
"name": "subnet2-name67678",
"addr": "192.168.1.200"
"id": "id2"
},
{
"name": "subnet3-name23345",
"addr": "192.168.1.300"
"id": "id3"
}
]
我正在尝试用部分名称搜索dicts并返回全名。例如,使用subnet1
搜索时应返回subnet1-name34554
如果我这样做:
- name: test
debug: msg="{{ subnets | selectattr("name", "search", "subnet1") | list }}"
我得到了一张单张的单子:
[
{
"name": "subnet1-name34554",
"address": "192.168.1.100"
"id: "id1"
}
]
我不确定下一步只拉“name”键是什么,或者是否有更好的方法?结果是您得到了一个dict列表(单dict)
因此,将它输入到first
过滤器中,以仅获取第一个元素,然后获取addressname
属性
- name: test
debug:
msg: "{{ (subnets | selectattr('name', 'search', 'subnet1') | list | first).name }}"
它真的需要自己的答案吗?在不到15秒内找到了您自己的dup…我需要一些帮助来继续解决方案,假设我需要字典的索引,其中value
id3
存在。那么它的语法是什么呢?