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

如何让Pydantic遇到第一个校验错误时就停止执行并返回对应错误?

Pydantic 校验终止(首次错误立即返回)解决方案

Pydantic V2(推荐使用)

V2 原生内置快速失败(Fail Fast)能力,支持两种配置方式:

  • 模型全局生效:在模型配置中添加 fail_fast = True 即可,该配置会作用于该模型所有校验场景,包括嵌套模型、列表元素校验
from pydantic import BaseModel, ConfigDict

class ClassA(BaseModel):
    model_config = ConfigDict(fail_fast=True)
    # 你的字段定义
    required_field: str
    optional_field: int | None = None

# 嵌套列表场景同样生效,遇到列表中第一个校验失败的元素就会终止流程
class ClassAList(BaseModel):
    model_config = ConfigDict(fail_fast=True)
    data: list[ClassA]
  • 单次校验临时生效:如果不需要全局开启,可在单次执行校验时传入参数:ClassA.model_validate(your_input, fail_fast=True)

Pydantic V1

V1 没有原生的快速失败配置,可通过两种方式自行实现:

  • 字段级校验:自定义校验装饰器逻辑,捕获到第一个 ValidationError 时直接抛出,不执行后续校验规则
  • 列表场景优化:不直接使用 List[ClassA] 进行全量校验,自行遍历列表元素逐个校验,遇到第一个错误立即中断遍历返回异常

开启快速失败逻辑后,对于批量同类型错误的场景可以大幅降低校验耗时,避免无效的重复校验执行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:06:05