Поиск в регулярных выражениях - PullRequest
2 голосов
/ 09 мая 2019

Как выполнить поиск по шаблону с помощью вложенной переменной Ansible?

YAML

test:
  name:
    address:
         zipcode: 12345

Ansible Template Variable

{{ test[name][addre*].zipcode }}

1 Ответ

4 голосов
/ 10 мая 2019

Как выполнить поиск по шаблону с помощью вложенной переменной Ansible?

- debug:
    msg: >-
      {{ test.name
      | dict2items
      | selectattr("key", "match", "addr.*")
      | map(attribute="value.zipcode")
      | list }}

Где dict2items взрывает дочерние элементы name, позволяя сопоставить шаблон - или любойдругие забавные приемы - основанные на ключе dict, который, как вы видели, обычно невозможен

Тогда у нас теперь есть список соответствия {"key": "address1234", "value": {"zipcode": "11111"}} структур, поэтому, если вам нужно поле zipcode для всех из них, просто зайдите в диктовку value и вытащите его поле zipcode.

Финальный list - это уступка, потому чтоmap создает генератор Python, а не фактический список

...