【发布时间】:2021-11-09 05:26:15
【问题描述】:
编辑 找到解决方案后,我更改了标题以更好地反映问题。 Unstuckify 的回复仍然有效并且与问题的文本相关
我有一个字典列表,我想用 Jinja2 循环:
dict = [{'symbol': 'BTCUSDT', 'price': 59325.1234, 'Qty': 2501}, {'symbol': 'ETHUSDT', 'price': 55.12, 'Qty': 14}]
我使用了下面的循环(来自 here)。我希望外部“for”语句获取列表中的第一项(这将是一个字典),而内部“for”循环遍历字典中的 k,v。
{% for dict_item in dict %}
{% for key, value in dict_item.items() %}
<h1>Key: {{key}}</h1>
<h2>Value: {{value}}</h2>
{% endfor %}
{% endfor %}
但是,Jinja 给了我以下错误 - 这表明 Jinja 无法将列表中的元素识别为 dicts:
jinja2.exceptions.UndefinedError: 'list object' has no attribute 'items'
即使大大简化了,我仍然遇到同样的错误:
{% for symbol in dict %}
<h2>{{ symbol }}</h2>
{% endfor %}
Jinja docs 在这方面不够详细。我也试过 this 并查看 this 方法但没有成功。只传递一个字典(不是字典列表)效果很好。
谁能解释我为什么会收到此错误并建议更好的代码?用不同的方法得到相同的错误信息让我认为我的想法有一些根本性的错误,但我想不通。
【问题讨论】:
标签: iteration jinja2 nested-datalist