首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pydantic场不取值

Pydantic场不取值
EN

Stack Overflow用户
提问于 2022-09-23 12:53:21
回答 1查看 150关注 0票数 2

在尝试命名Pydantic字段schema时,我收到了以下错误:

代码语言:javascript
复制
NameError: Field name "schema" shadows a BaseModel attribute; use a different field name with "alias='schema'".

文献资料之后,我试图使用别名来避免冲突。见下面的代码:

代码语言:javascript
复制
from pydantic import StrictStr, Field
from pydantic.main import BaseModel    

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

在尝试以下列方式实例化CreateStreamPayload时:

代码语言:javascript
复制
a = CreateStreamPayload(name= "joe",
            _schema= {"name": "a name"})

生成的实例只有一个name值,没有其他值。

代码语言:javascript
复制
a.dict()
{'name': 'joe'}

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

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-23 13:21:02

来自文献资料

类变量(以下划线和带有typing.ClassVar注释的属性开头)将自动排除在模型中。

通常,添加下划线以避免冲突,因为引导下划线被看作是➡(魔术)成员或私有成员:_schemaschema_

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73828037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档