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

Ansible 无法遍历字典,如何检查它是否为空?,ansible,jinja2,Ansible,Jinja2,我正在尝试为web应用程序升级服务器,我必须遍历键值字典,但出现以下错误 失败!=>{“changed”:false,“msg”:“AnsibleUndefinedVariable:'ansible.utils.unsafe_proxy.AnsibleUnsafeText对象'没有属性'iteritems'”} 我试过了 { "version":"{{ version.actual_version_number }}", "integrations": {

我正在尝试为web应用程序升级服务器,我必须遍历键值字典,但出现以下错误

失败!=>{“changed”:false,“msg”:“AnsibleUndefinedVariable:'ansible.utils.unsafe_proxy.AnsibleUnsafeText对象'没有属性'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 %}  
      }  
    }

如果有人能帮助解决这个问题,我将不胜感激

假设您的数据结构是dict use
如果定义了integration_details和integration_details.keys()| length>0,这将检查是否存在子键。如果是列表,则使用
如果定义了集成详细信息且集成详细信息|长度>0

但是看到您发布的错误,您可能会在某个地方使用
iteritems()


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

您的数据结构是什么样子的?您如何定义集成的详细信息?你能提供你正在运行的剧本吗?。跟着。