python-如何解决KeyError:2?

Posted

技术标签:

【中文标题】python-如何解决KeyError:2?【英文标题】:python-How to solve KeyError: 2? 【发布时间】:2016-05-25 06:49:06 【问题描述】:

我有一个格式为int:[]的字典

当我尝试将值设置为值列表为 NULL 的键值对时,我得到了KeyError: 2

tags = 
tags.setdefault(int,[])
for tag_id in (db.session.query(PostTagRel).filter(PostTagRel.id == post_id).first().tag_id.split(',')):
            tag = db.session.query(Tag).filter(Tag.tag_id == tag_id).first().tag_name
            tags[post_id].append(tag)

我该怎么办?

【问题讨论】:

setdefault 设置具体键的默认值,而不是键的类型。 defaultdict 可能会满足您的目的:from collections import defaultdict d = defaultdict(lambda: []) 首先,您不应该重新定义保留名称,如dict,因为您将无法进一步使用原始对象。二、dict.[0].append(1)在语法上无效 请编辑您的问题以显示您使用的实际代码和回溯。 @schwobaseggl:或者只是d = defaultdict(list):不需要lambda @MarkDickinson 啊,这更直观。谢谢! 【参考方案1】:

为了给所有键设置一个通用的默认值,你可以使用defaultdict

from collections import defaultdict

d = defaultdict(list)    
d[0].append(1)

【讨论】:

以上是关于python-如何解决KeyError:2?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 KeyError: 'val_mean_absolute_error' Keras 2.3.1 and TensorFlow 2.0 From Chollet Deep Learning w

如何使用 Flask-SocketIO 修复此 KeyError 错误?

python: pandas.DataFrame,如何避免keyerror?

如何解决 KeyError:u“[Index([..], dtype='object')] 中没有 [列]”

在 Pandas 中使用 groupby 函数时如何解决“keyerror”?

python里出现keyerror 怎么解决