如何使用jinja2打印列表?

时间:2017-12-01 13:33:56

标签: python flask jinja2

我正在尝试使用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中的列表?

1 个答案:

答案 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 %}