У меня есть такой словарь:
list_of_dicts:
config:
key1: value1
key2: value2
Когда я зацикливаю словарь, я хочу объединить пару ключ / значение.
set_facts:
list_of_dicts: {{ list_of_dicts | default({}) | combine (item.key: item.value) }}
with_dict: "{{ list_of_dicts }}"
Как я могу получить значение item.value.key?
С помощью filter_plugin ниже (кредит Coderwall)
> cat filter_plugins/hash_utils.py
def hash_to_tuples(h):
return h.items()
def hash_keys(h):
return h.keys()
def hash_values(h):
return h.values()
class FilterModule(object):
''' utility filters for operating on hashes '''
def filters(self):
return {
'hash_to_tuples' : hash_to_tuples
,'hash_keys' : hash_keys
,'hash_values' : hash_values
}
Игра
- debug:
msg: "{{ item|hash_keys }}"
loop: "{{ list_of_dicts.values() }}"
дает (в сокращении):
"msg": [
"key2",
"key1"
]
Вы можете попробовать hash_to_tuples и hash_values фильтры.