You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用字典实例化Beanie的Schema类时出现Pydantic验证错误的问题求助

使用字典实例化Beanie的Schema类时出现Pydantic验证错误的问题求助

我最近在使用Beanie和Pydantic构建MongoDB文档模型时遇到了一个奇怪的问题。下面是我的类定义、用来生成实例字典的函数,以及触发错误的代码行:

类定义代码

from beanie import Document
from pydantic import Field, ConfigDict, field_validator
class Schema(Document):
    model_config = ConfigDict(extra='forbid')
    name: str = Field(alias='name')
    description: str = Field(alias='description')
    date: int = Field(alias='date')

生成默认字典的函数

def get_default_schema():
    schema_dict = {
        'name': 'schema_name',
        'description': 'my description',
        'date': 2022
    }
    return schema_dict

触发错误的实例化代码

schema_dict = get_default_schema()
sch = Schema(**schema_dict)

运行这段代码后,Pydantic返回了如下验证错误:

self = Schema(), args = ()
kwargs = {'date': 2022, 'description': 'my description', 'name': 'schema_name'}

    def __init__(self, *args: Any, **kwargs: Any) -> None:
>       super(Document, self).__init__(*args, **kwargs)
E       pydantic_core._pydantic_core.ValidationError: 2 validation errors for Schema
E       description
E         Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
E           For further information visit https://errors.pydantic.dev/2.10/v/string_type
E       date
E         Input should be a valid integer [type=int_type, input_value=None, input_type=NoneType]
E           For further information visit https://errors.pydantic.dev/2.10/v/int_type

我已经在类里正确指定了所有字段的数据类型,字典里的对应值类型也完全匹配,而且我有一个结构类似的示例代码运行完全正常。但不知道为什么Pydantic好像识别不出三个属性里的两个,感觉是不是自己漏掉了什么很明显的细节?

备注:内容来源于stack exchange,提问作者Trigg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 11:38:03