Не можете перебрать словарь, как проверить, пуст ли он? - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь обновить сервер для веб-приложения, мне нужно перебрать словарь значений ключей, но мне выдается следующая ошибка

FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'ansible.utils.unsafe_proxy.AnsibleUnsafeText object' has no attribute 'iteritems'"}

Я пытался

    {  
      "version":"{{ version.actual_version_number }}",  
      "integrations": {  
    {% for id, port in integration_details.items() %}  
      {% if integration_details is defined and integration_details is not empty %}  
        {{ id }} : {{ port }}  
      {% endif %}  
      {%- if not loop.last -%},{% endif %}  
    {% endfor %}  
      }  
    }

Если кто-нибудь может помочь с этой проблемой, будет очень признателен!

1 Ответ

0 голосов
/ 15 февраля 2019

Предполагая, что ваша структура данных является диктом, используйте if integration_details is defined and integration_details.keys()|length > 0, чтобы проверить, присутствуют ли какие-либо подключи.Если в списке используется if integration_details is defined and integration_details|length > 0

Но, увидев опубликованную вами ошибку, вы можете получить цикл for с iteritems() где-то, чего нет в опубликованном вами коде.

Это может бытьпотому что вы используете python3, но хотите повторить ваш dict с помощью iteritems () вместо items (), или ваша переменная - не dict, а другой тип.

...