在try 命名一个PYDANIC字段schema时,我收到以下错误:

NameError: Field name "schema" shadows a BaseModel attribute; use a different field name with "alias='schema'".

the documentation之后,我try 使用别名来避免冲突.请参阅下面的代码:

from pydantic import StrictStr, Field
from pydantic.main import BaseModel    

class CreateStreamPayload(BaseModel):
          name: StrictStr
          _schema: dict[str: str] = Field(alias='schema')

try 通过以下方式实例化CreateStreamPayload时:

a = CreateStreamPayload(name= "joe",
            _schema= {"name": "a name"})

结果实例的值只有name,没有其他值.

a.dict()
{'name': 'joe'}

这对我来说完全没有意义,有人能解释一下发生了什么吗?

非常感谢

推荐答案

the documentation人起:

以下划线开头的类变量和用typing.ClassVar注释的属性将自动从模型中排除.

通常,为避免冲突而使用下划线作为前导下划线被视为DUnder(魔术)成员或私有成员:_schemaschema_

Python相关问答推荐

为什么'if x is None:pass'比'x is None'单独使用更快?

如何在Python 3.9.6和MacOS Sonoma 14.3.1下安装Pyregion

为用户输入的整数查找根/幂整数对的Python练习

使用python playwright从 Select 子菜单中 Select 值

如何重新组织我的Pandas DataFrame,使列名成为列值?

SpaCy:Regex模式在基于规则的匹配器中不起作用

用来自另一个数据框的列特定标量划分Polars数据框中的每一列,

使用pythonminidom过滤XML文件

有没有一种方法可以根据不同索引集的数组从2D数组的对称子矩阵高效地构造3D数组?

Pandas查找给定时间戳之前的最后一个值

是否从Python调用SHGetKnownFolderPath?

try 第二次训练新的JAX+Equinox模型时,具有多个元素的数组的真值不明确(&Q)

Df.Drop_Duplates(),以极点表示?

优化数组加法(y,x,RGBA)

没有与提供的参数匹配

Pandas 替换为另一行中的值

无法在没有echo的情况下判断macOS上Python中按下的键

Lambda调用未处理,3秒后超时?

future 对大Pandas 群居的警告

无法调用Python文档对象