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

如何用Pydantic BaseModel将大小写不一致的用户输入转为snake_case?

解决Pydantic字段大小写不匹配的解析问题

针对输入字段大小写与模型snake_case字段不匹配导致无法解析的问题,有两种实用解决方式:

方法一:关闭字段大小写敏感性

在模型配置中设置case_sensitive=False,Pydantic会自动忽略输入字段名的大小写,匹配到对应模型字段:

from typing import Optional
from pydantic import BaseModel

class BookCreation(BaseModel):
    book_name: str
    book_size: Optional[str]
    book_author: str

    model_config = {
        "case_sensitive": False
    }

测试时,输入的book_SIZE会被正确映射到book_size字段,赋值为"23"。

方法二:自定义别名生成器(支持灵活字段名转换)

如果需要处理更复杂的字段名格式(比如驼峰转snake_case、混合大小写转snake_case),可以用Pydantic的AliasGenerator配合to_snake转换器,确保输入字段自动转为标准snake_case后匹配模型字段:

from typing import Optional
from pydantic import BaseModel, AliasGenerator
from pydantic.alias_generators import to_snake

class BookCreation(BaseModel):
    book_name: str
    book_size: Optional[str]
    book_author: str

    model_config = {
        "alias_generator": AliasGenerator(validation_alias=to_snake),
        "populate_by_name": True
    }

该配置可将任意格式的输入字段名(如bookSIZE、BookSize)转换为snake_case格式,兼容性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:32:38