2rs*_*2ts 4 python jinja2 ansible
我在ansible剧本中有两个字符串列表,并且我试图在列表A中查找不在列表B中的元素-设置不同。但是,我似乎无法访问python set数据结构。这是我正在尝试做的事情:
- set_fact:
difference: "{{ (set(listA) - set(listB)).pop() }}"
Run Code Online (Sandbox Code Playgroud)
但是我说错了'set' is undefined。对我来说很有意义,因为它不是变量,但我不知道该怎么办。如何计算这两个列表的设置差异?Ansible中的股票Jinja功能是否不可能?
在通用 Jinja2 中,这可以很容易地实现,将reject过滤器与in测试结合起来:
"{{ listA | reject('in', listB) | first }}"
Run Code Online (Sandbox Code Playgroud)
这需要 Jinja >= 2.10
事实证明,有一个内置的过滤器叫做difference。
这完成了我在问题中试图做的事情:
"{{ (listA | difference(listB)) | first }}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4158 次 |
| 最近记录: |