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 中的列表?
你有一个循环太多了。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)