ansible - Ansible 嵌套变量正则表达式搜索
问题描述
我们如何使用 Ansible 嵌套变量进行通配符搜索?
YAML
test:
name:
address:
zipcode: 12345
Ansible 模板变量
{{ test[name][addre*].zipcode }}
解决方案
我们如何使用 Ansible 嵌套变量进行通配符搜索?
- debug:
msg: >-
{{ test.name
| dict2items
| selectattr("key", "match", "addr.*")
| map(attribute="value.zipcode")
| list }}
允许一个模式匹配的孩子在哪里dict2items
爆炸name
- 或任何其他有趣的技巧 - 基于 的键,dict
这通常 - 正如你所看到的 - 是不可能的
然后我们现在有一个匹配{"key": "address1234", "value": {"zipcode": "11111"}}
结构的列表,所以如果你想要zipcode
所有这些的字段,只需进入value
dict 并拉出它的zipcode
字段。
finallist
是一个让步,因为map
产生了一个 python 生成器,而不是一个实际的列表
推荐阅读
- javascript - 在数组中映射数组
- javascript - Vue - 将数组作为参数传递
- c# - 为什么在 .NET 5 中指定循环枚举值时枚举的顺序很重要?
- php - 用户/浏览器是否可以看到服务器端的 PHP curl 请求
- python - 如何将列表分隔到不同的表格并将表格打印到reportlab中的各个页面pdf?
- node.js - Type-graphql,Mikoorm 查询返回 Ref
而不是用户 - docker - 本地主机窗口 10 中的 Docker 连接被拒绝
- javascript - Javascript地图问题返回一个空值的数组
- java - 如何使用共享主键保持一对一休眠
- node.js - 我们可以将实时数据存储在 mongodb 数据库中吗?