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

如何获取Pydantic v1.10模型中标记exclude=True的字段

解决Pydantic v1.10获取exclude=True字段的问题

在Pydantic v1.10里,想要拿到标记了exclude=True的字段,其实不用绕远路——带该标记的字段仍存在于模型的__fields__中,只是默认不会出现在schema里,直接遍历就能筛选出来。

具体操作方法:

  • 遍历目标模型的__fields__.values(),每个元素都是ModelField对象
  • 检查每个ModelField的exclude属性,值为True的就是被标记排除的字段

举个实际代码例子:

from pydantic import BaseModel, Field

class MyModel(BaseModel):
    field_1: str
    field_2: int
    field_3: bool = Field(exclude=True)

# 筛选所有标记exclude=True的字段名
excluded_fields = [field.name for field in MyModel.__fields__.values() if field.exclude]
print(excluded_fields)  # 输出: ['field_3']

如果是要在序列化时自动排除这些字段,直接用模型的dict()或json()方法即可,它会自动识别exclude=True的字段并跳过,无需手动处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 02:58:09