如何使用 jinja2 打印列表?

rui*_*eco -1 python jinja2 flask

我正在尝试使用 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 %}
Run Code Online (Sandbox Code Playgroud)

除了在 Python 控制台中这有效,但在 Jinja2 中它因错误而死 TypeError: 'int' object is not iterable

如何遍历 Jinja2 中的列表?

Mar*_*ers 5

你有一个循环太多了。table[key]是一个列表对象,所以循环给你列表中的值:

{% for key in table.keys() %}
  {% for a_value in table[key] %}
    {{ a_value }}
  {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

您的无关循环试图遍历列表中的整数对象。请注意,您不需要遍历keys()结果;您可以直接遍历字典:

{% for key in table %}
  {% for a_value in table[key] %}
    {{ a_value }}
  {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

如果您没有在循环中使用键,只需直接在值上循环:

{% for list_value in table.values() %}
  {% for a_value in list_value %}
    {{ a_value }}
  {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)