我正在尝试使用Jinja2生成HTML表格。该表的数据位于collections.OrderedDict
,其中键是字符串,值是字符串列表。
我尝试使用以下循环实现它:
{% for key in table.keys() %}
{% for a_list in table[key] %}
{% for a_value in a_list %}
{{ a_value }}
{% endfor %}
{% endfor %}
{% endfor %}
除了在Python控制台中这是有效的,但在Jinja2中,它会因错误TypeError: 'int' object is not iterable
而死亡
如何遍历Jinja2中的列表?
答案 0 :(得分:4)
你有一个循环太多了。 table[key]
是一个列表对象,因此循环可以为您提供列表中的值:
{% for key in table.keys() %}
{% for a_value in table[key] %}
{{ a_value }}
{% endfor %}
{% endfor %}
你无关的循环试图遍历列表中的整数对象。请注意,您不需要遍历keys()
结果;你可以直接在字典上循环:
{% for key in table %}
{% for a_value in table[key] %}
{{ a_value }}
{% endfor %}
{% endfor %}
如果您没有在循环中使用该键,只需直接遍历值:
{% for list_value in table.values() %}
{% for a_value in list_value %}
{{ a_value }}
{% endfor %}
{% endfor %}