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')] 中没有 [列]”