如何在 pydantic 模型中使用保留关键字

How to use a reserved keyword in pydantic model

我需要创建一个架构,但它有一个名为 global 的列,当我尝试编写此列时,出现错误。

class User(BaseModel):

    id:int
    global:bool

我尝试使用其他名称,但在尝试保存到数据库时出现另一个错误。

您似乎在使用 pydantic 模块。你不能使用名称 global 因为它是一个保留关键字所以你需要使用这个技巧来转换它。

class User(BaseModel):
    id: int
    global_: bool

    class Config:
        fields = {
            'global_': 'global'
        }

class User(BaseModel):
    id: int
    global_: bool = Field(..., alias='global')

要创建 class 你必须使用字典(因为 User(id=1, global=False) 也会抛出一个错误:

user = User(**{'id': 1, 'global': False})

要获取正确架构中的数据,请使用 by_alias:

user.dict(by_alias=True)