当密钥明确存在时,模板中出现KeyError

2024-04-20 01:04:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想像这样在模板数据中呈现:[{'name': 'Some name', 'description': 'Description for this item'}]

我试着用这个代码:

{% for item in source_data %}
    <tr>
        <td>{{ item['name'] }}</td>
        <td>{{ item['description'] }}</td>
    </tr>
{% end %}

它不起作用,因为我收到KeyError: 'description'异常。在

但是,如果我将第二个占位符改为{{ item.get('description') }},它将按预期工作(打印的是字典中的正确数据,而不是默认值)。在

什么会产生这种错误?在


Tags: 数据代码namein模板sourcefordata
1条回答
网友
1楼 · 发布于 2024-04-20 01:04:49

似乎不是所有的字典都有description键。在

不要通过键直接获取值,而是使用dictionary get()方法,如果找不到键,则不会抛出KeyError

{% for item in source_data %}
    <tr>
        <td>{{ item['name'] }}</td>
        <td>{{ item.get('description', 'No description') }}</td>
    </tr>
{% end %}

演示:

^{pr2}$

希望有帮助。在

相关问题 更多 >