使用列表遍历列表列表

时间:2019-09-18 14:49:12

标签: jinja2

我要遍历列表,对于列表的每个元素,我都必须遍历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)

1 个答案:

答案 0 :(得分:1)

最好在这里使用索引。您可以轻松地在循环中访问当前项目索引并执行所需的遍历:

{% for device in devices %}
  {% for port in device_ports[loop.index0] %}
     {{device}} {{port}}
  {% endfor %}
{% endfor %}

loop.index0devices中当前项目的索引(即device),您可以使用该索引从device_ports中访问相应的项目。