如何为返回含pd.NA的字典的Pandas函数添加类型提示
Pandas函数返回含pd.NA的字典的类型提示解决方案
你遇到的错误是因为pd.NA是pd.NAType的实例,而类型提示要求填入的是类型对象,直接写pd.NA不符合类型检查器的规则。不需要导入numpy,用以下方法就能解决:
方法1:直接使用pd.NAType标注
这是最规范的方式,直接引用pd.NA对应的类型:
import pandas as pd def _the_function(x: str) -> dict[str, str | pd.NAType]: # 示例实现 if not x.strip(): return {"result": pd.NA} return {"result": x.upper()}
方法2:兼容旧Python版本的写法
如果项目仍在使用Python 3.9及以下,不支持|联合类型语法,可以改用Union:
from typing import Union import pandas as pd def _the_function(x: str) -> dict[str, Union[str, pd.NAType]]: # 示例实现 if not x.strip(): return {"result": pd.NA} return {"result": x.upper()}
注意:如果你的类型检查器(如mypy)版本较旧,可能需要安装types-pandas包来确保pandas的类型注解能被正确识别。
内容的提问来源于stack exchange,提问作者storms
相关产品推荐
相关产品推荐

