编辑找到解决方案后,我更改了标题以更好地反映问题。Unstuckify 的回复仍然有效并且与问题的文本相关
我有一个我想用 Jinja2 循环的字典列表:
dict = [{'symbol': 'BTCUSDT', 'price': 59325.1234, 'Qty': 2501}, {'symbol': 'ETHUSDT', 'price': 55.12, 'Qty': 14}]
我使用了下面的循环(从这里)。我希望外部“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文档对此不够详细。我也尝试过这个方法,但没有成功。只传递一个字典(不是字典列表)效果很好。
任何人都可以解释为什么我会收到此错误并建议更好的代码吗?用不同的方法得到相同的错误信息让我认为我的想法存在一些基本错误,但我无法弄清楚。