Ansible 无法遍历字典,如何检查它是否为空?
我正在尝试为web应用程序升级服务器,我必须遍历键值字典,但出现以下错误Ansible 无法遍历字典,如何检查它是否为空?,ansible,jinja2,Ansible,Jinja2,我正在尝试为web应用程序升级服务器,我必须遍历键值字典,但出现以下错误 失败!=>{“changed”:false,“msg”:“AnsibleUndefinedVariable:'ansible.utils.unsafe_proxy.AnsibleUnsafeText对象'没有属性'iteritems'”} 我试过了 { "version":"{{ version.actual_version_number }}", "integrations": {
失败!=>{“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,而是另一种类型 您的数据结构是什么样子的?您如何定义集成的详细信息?你能提供你正在运行的剧本吗?。跟着。