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

如何在Pydantic验证失败时获取原始JSON数据?

解决Pydantic验证失败时获取原始数据的方法

Pydantic的ValidationError本身不会自动保留原始输入数据,想要不管验证成功与否都拿到原始数据,最直接靠谱的办法是提前把输入数据单独存好,具体实现如下:

from pydantic import BaseModel, Field, ValidationError

class Model(BaseModel):
    a: float = Field(ge=1.0)

# 先将原始输入数据单独存储
raw_input = {"a": 0.5}
try:
    # 使用预存的原始数据初始化模型
    m = Model(**raw_input)
    # 验证成功时输出序列化后的模型数据
    print(m.model_dump_json())
except ValidationError as e:
    # 验证失败时,基于原始数据添加错误信息
    result = raw_input.copy()
    result["errors"] = e.model_dump_json()
    print(result)

如果使用Pydantic v2,你也能通过ValidationError的私有属性_input_data获取原始数据,但不推荐这么做——私有属性可能在后续版本中被修改,稳定性远不如提前保存原始数据的方案。

内容的提问来源于stack exchange,提问作者Oliver

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:10:30