Назад | Перейти на главную страницу

Как я могу получить значение item.value.key

У меня есть такой словарь:

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 фильтры.