[英]Flask Jinja2 template dictionary in a dictionary
我正在Flask应用程序中使用以下字典,但无法弄清楚如何在Jinja2模板中选择嵌套的字典值。
dict = {"key1": {"subkey1":"subvalue1","subkey2":"subvalue2","subkey3":"subvalue3"}, "key2": {"subkey1":"subvalue1","subkey2":"subvalue2","subkey3":"subvalue3"}}
我能够像这样在python shell中获得每个值:
print(dict['key1']['subkey1'])
print(dict['key1']['subkey2'])
print(dict['key1']['subkey3'])
我将字典发送到模板,如下所示:
return render_template('template.html', dict=dict)
然后在尝试模板时,我有:
{% for item in dict %}
<td>{{ item.subkey1 }}</td>
<td>{{ item.subkey2 }}</td>
<td>{{ item.subkey3 }}</td>
{% endfor %}
但这不会返回我希望的子值。
{% for key1,item1 in dict.items() %}
{% for key2,nested_item in item1.items() %}
<td> {{nested_item}} </td>
{% endfor %}
{% endfor %}
dict.item()
用于获取字典dict
键和项。
访问字典需要1级循环,访问字典的词典需要2级循环。
这个问题根本与Jinja无关。
当用for x in y
遍历字典时,您只会得到键,而不是值。 如果要遍历值,则需要明确地执行以下操作:
{% for item in dict.values() %}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.