Python mypy:类型“的值”;可选[映射[任何,任何]]”;是不可转位的
为什么Python mypy:类型“的值”;可选[映射[任何,任何]]”;是不可转位的,python,python-3.x,type-hinting,mypy,Python,Python 3.x,Type Hinting,Mypy,为什么mypy说databases库的fetch\u one方法返回的值是不可索引的?在这种情况下,我应该如何解决此错误 async def get_reaction_by_name(name: str, user_id: str) -> Optional[Mapping[Any, Any]]: query = reactions.select().where( (reactions.c.name == name) & (reactions.c.user_i
mypy
说databases
库的fetch\u one
方法返回的值是不可索引的?在这种情况下,我应该如何解决此错误
async def get_reaction_by_name(name: str, user_id: str) -> Optional[Mapping[Any, Any]]:
query = reactions.select().where(
(reactions.c.name == name) & (reactions.c.user_id == user_id)
)
return await database.fetch_one(query)
...
reaction = await get_reaction_by_name(name=name, user_id=user_id)
reaction["name"]
# mypy: Value of type "Optional[Mapping[Any, Any]]" is not indexable
mypy告诉我们的是,由于函数返回
可选[…]
,然后将其结果视为…
(映射[Any,Any]
,在给定的代码段中),我们应该检查它是否是无
类
reaction=wait-get\u-reaction\u by\u-name(name=name,user\u-id=user\u-id)
如果反应不是无:
反应[“名称”]
mypy告诉我们的是,由于函数返回可选[…]
,然后将其结果视为。
(映射[Any,Any]
,在给定的代码段中),我们应该检查它是否是None
reaction=wait-get\u-reaction\u by\u-name(name=name,user\u-id=user\u-id)
如果反应不是无:
反应[“名称”]
什么是数据库的签名。fetch_one
函数?另外,由于它是可选的
mypy说,在将其视为映射之前,您可能应该检查返回值是否为None
,类似于如果反应不是None:reaction[“name”]
检查无帮助!请添加一个答案,我将接受它。数据库的签名是什么。fetch_one
函数?另外,由于它是可选的
mypy说,您可能应该检查返回值是否不是None
,然后再将其视为映射
类似于如果反应不是无:反应[“name”]
检查无帮助!请添加一个答案,我将接受它。