我有一个字典列表,看起来类似于以下内容:
"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并返回全名。 E.g使用subnet1
进行搜索应返回subnet1-name34554
如果我这样做:
- name: test
debug: msg="{{ subnets | selectattr("name", "search", "subnet1") | list }}"
我得到一个包含单个词典的列表:
[
{
"name": "subnet1-name34554",
"address": "192.168.1.100"
"id: "id1"
}
]
我不确定下一步只提取“名称”键是什么,或者是否有更好的方法?
答案 0 :(得分:2)
结果列出了dicts(单个字典)。
因此请将其输入xsh -aC 'open file.xml; $answer={$ARGV[0]};
echo //string[@tag=$answer]/@value' "$answer"
过滤器以仅获取第一个元素,然后解决first
属性。
name