Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ansible中的目录列表中搜索关键字_Ansible_Jinja2 - Fatal编程技术网

在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
过滤器中,以仅获取第一个元素,然后获取address
name
属性

- name: test
  debug:
    msg: "{{ (subnets |  selectattr('name', 'search', 'subnet1') | list | first).name }}"

它真的需要自己的答案吗?在不到15秒内找到了您自己的dup…我需要一些帮助来继续解决方案,假设我需要字典的索引,其中value
id3
存在。那么它的语法是什么呢?