我要遍历列表,对于列表的每个元素,我都必须遍历jinja2中其他列表的各个元素。
列表:
devices=["device1","device2","device3"]
device_ports=[["device1port1","device1port2"],["device2port1","device2port2"],["device3port1","device3port2"]]
Jinja模板:
{% for device,device_port in devices,device_ports %}
{% for port in device_port %}
{{device}} {{port}}
{% endfor %}
{% endfor %}
预期的模板输出:
device1 device1port1
device1 device1port2
device2 device2port1
device2 device2port2
device3 device3port1
device4 device4port2
错误:
ValueError:太多值无法解包(预期2)
答案 0 :(得分:1)
最好在这里使用索引。您可以轻松地在循环中访问当前项目索引并执行所需的遍历:
{% for device in devices %}
{% for port in device_ports[loop.index0] %}
{{device}} {{port}}
{% endfor %}
{% endfor %}
loop.index0
是devices
中当前项目的索引(即device
),您可以使用该索引从device_ports
中访问相应的项目。