首页 > 解决方案 > 使用枚举类型的变量时对 TypedDict 键的类型检查失败

问题描述

鉴于我有以下类型 dict 和 emun

class TransactionBatchDict(TypedDict):
    job_id: str
    batch_id: str
    rows: list

class TransactionBatchKeys(str, Enum):
    JOB_ID = "job_id"
    BATCH_ID = "batch_id"
    ROWS = "rows"

执行以下操作会导致静态类型分析检查失败

a: TransactionBatchDict = {
    "job_id": "asdf",
    "batch_id": "Asdfadsf",
    "rows": []
}
b: TransactionBatchKeys = TransactionBatchKeys.JOB_ID
a[b] = "new_value"

我不确定这是否是最好的方法,但本质上我只是在寻找在将密钥作为变量传递而不是显式声明时不会通过键入 dict 的密钥验证检查的东西访问时的键。

标签: pythonstatic-analysistyping

解决方案


推荐阅读