无法遍历字典,如何检查它是否为空?

问题描述 投票:-2回答:1

我正在尝试升级Web应用程序的服务器,我必须遍历一个键值字典,但我得到以下错误

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 %}  
      }  
    }

如果有人可以帮助解决这个问题,我将非常感激!

ansible jinja2
1个回答
0
投票

假设您的数据结构是dict使用if integration_details is defined and integration_details.keys()|length > 0,这将检查是否存在任何子键。如果它的列表使用if integration_details is defined and integration_details|length > 0

但是看到你发布的错误你可能有iteritems()somewhere的for循环,这不在你发布的代码中。

这可能是因为你使用python3但是想用iteritems()而不是items()来迭代你的dict,或者你的变量不是dict而是另一种类型。

© www.soinside.com 2019 - 2024. All rights reserved.