Доступ к элементу списка как dict - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь получить доступ к элементам списка, но всякий раз, когда я пытаюсь получить доступ к его элементам, они обрабатываются как текст (см. Выходные данные отладки).

Как я могу l oop поверх элементы содержимого [0]?

ansible version: 2.5.1

playbook.yml:

- hosts: localhost
  gather_facts: no
  vars:
    content: []
  tasks:
    - name: Call the Consul API to get all registered services
      uri:
        url: "https://{{API_URL}}/v1/health/service/{{item}}?Status=critical"
        headers:
          Authorization: "Bearer {{TOKEN}}"
        method: GET
        return_content: yes
        status_code: 200
        body_format: json
        force: yes
      register: r
      with_items:
        - service1
        - service2
    - set_fact:
        content: "{{ lookup('flattened', r | json_query('results[*].content')) }}"
    - debug:
        msg: "{{ content[0][0] | type_debug }}"
    - debug:
        msg:  "{{ item | type_debug  }}"
      with_items: "{{ content[0] }}"

отладочный вывод:

TASK [debug]
ok: [127.0.0.1] => {
    "msg": "dict"
}

TASK [debug]
ok: [127.0.0.1] => (item=None) => {
    "msg": "AnsibleUnsafeText"
}

1 Ответ

0 голосов
/ 28 января 2020

Я надеюсь , этот вопрос и ответ помогут вам. Я думаю, что подход, который вы используете, является проблемой.

...