Нужно руководство по переписыванию этого запроса

Я думаю, что добрался до конца.

Задача такова:

- name: Populate genders
  set_fact:
    genders: "{{ genders|default({}) | combine( {item.item.name: item.stdout} ) }}"
  with_items: "{{ people.results }}"

Она пробивает каждый из dicts (item) в поле people.results, каждый раз создавая новый dict, такой как {Bob: "male"} и combine() s, что новый dict в массиве genders, который заканчивается следующим образом:

{
    "Bob": "male",
    "Thelma": "female"
}

Он принимает ключи ( name в этом случае) будет уникальным.


Затем я понял, что мне действительно нужен список словарей, так как кажется намного проще прокручивать с помощью with_items:

- name: Populate genders
  set_fact:
    genders: "{{ genders|default([]) + [ {'name': item.item.name, 'gender': item.stdout} ] }}"
  with_items: "{{ people.results }}"

Это позволяет комбинировать существующий список со списком, содержащим один dict. Мы получим массив genders следующим образом:

[
    {'name': 'Bob', 'gender': 'male'},
    {'name': 'Thelma', 'gender': 'female'}
]
0
задан akash sharma 1 April 2019 в 06:09
поделиться