要返回唯一的键/值对,您可以使用Ansible的json_query
过滤器。下面是一个示例代码:
- hosts: localhost
gather_facts: false
vars:
my_dict:
key1: value1
key2: value2
key3: value1
key4: value3
tasks:
- name: Filter unique key/value pairs
debug:
msg: "{{ my_dict | dict2items | json_query('[?value!=`null`].{key: key, value: value}') }}"
在这个示例中,my_dict
是一个包含键/值对的字典。使用dict2items
过滤器将其转换为一个包含字典的列表。然后,使用json_query
过滤器过滤掉值为null
的项,并返回一个只包含键和值的新列表。
输出将会是:
TASK [Filter unique key/value pairs] **************************************************************************************************************************
ok: [localhost] => {
"msg": [
{
"key": "key1",
"value": "value1"
},
{
"key": "key2",
"value": "value2"
},
{
"key": "key4",
"value": "value3"
}
]
}
这样,您就得到了一个只包含唯一键/值对的列表。