Python Jinja2在字典项列表上循环
我有一个正在循环的字典项列表。Python Jinja2在字典项列表上循环,python,flask,jinja2,Python,Flask,Jinja2,我有一个正在循环的字典项列表。 我可以得到年份,当我试图从字典中获取数据时,它会再次打印年份 [{'2020': [], '2019': ['05'], '2018': ['02', '01']}] {% for d in dirs %} {% for sd in d %} {{ sd }} {% for doy in sd %} {{ doy }}<br> {% endfor %}&
我可以得到年份,当我试图从字典中获取数据时,它会再次打印年份
[{'2020': [], '2019': ['05'], '2018': ['02', '01']}]
{% for d in dirs %}
{% for sd in d %}
{{ sd }}
{% for doy in sd %}
{{ doy }}<br>
{% endfor %}<br><br>
{% endfor %}
{% endfor %}
我想打印的是
2020
2019
05
2018
02
01
改变
到
这里的理由是,在字典上使用
for。。。在…
中,语法迭代字典的键。这意味着您的嵌套循环试图循环字典键内的值,而不是字典键的值。如上所述,您可以通过修改第三个循环来实现。要简化:
list = [{'2020': [''], '2019': ['05'], '2018': ['02', '01']}]
模板:
{% for obj in list %}
{% for obj2 in obj %}
<p>{{ obj2 }}</p>
{% for obj3 in obj[obj2] %}
<p>{{ obj3 }}</p>
{% endfor %}
{% endfor %}
{% endfor %}
{% for doy in d[sd] %}
list = [{'2020': [''], '2019': ['05'], '2018': ['02', '01']}]
{% for obj in list %}
{% for obj2 in obj %}
<p>{{ obj2 }}</p>
{% for obj3 in obj[obj2] %}
<p>{{ obj3 }}</p>
{% endfor %}
{% endfor %}
{% endfor %}
2020
2019
05
2018
02
01