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

如何使用Pydantic设置自定义JSON参数名称?

使用Pydantic修改JSON输出的键名

要实现将输入JSON中的model键在输出时替换为自定义名称changed_key,可以利用Pydantic的字段别名功能,以下分版本给出实现方式:

Pydantic v2 实现

from pydantic import BaseModel, Field

# 定义模型:指定输入JSON的"model"键映射到模型的"changed_key"字段
class MyModel(BaseModel):
    changed_key: str = Field(validation_alias="model")
    weight: str

# 模拟来自数据库的输入数据
input_data = {
    "model": "Example",
    "weight": "1"
}

# 解析输入为模型实例
model_instance = MyModel.model_validate(input_data)
# 序列化模型得到目标JSON结构
output_data = model_instance.model_dump()
print(output_data)
# 输出:{'changed_key': 'Example', 'weight': '1'}

通过validation_alias指定输入键与模型字段的映射关系,序列化时直接输出模型字段名,无需额外参数即可得到目标结构。

Pydantic v1 实现

from pydantic import BaseModel, Field

class MyModel(BaseModel):
    changed_key: str = Field(alias="model")
    weight: str

    class Config:
        allow_population_by_field_name = True

input_data = {
    "model": "Example",
    "weight": "1"
}

# 解析输入数据
model_instance = MyModel.parse_obj(input_data)
# 序列化时指定输出别名对应键
output_data = model_instance.json(by_alias=True)
print(output_data)
# 输出:{"changed_key": "Example", "weight": "1"}

在v1版本中通过Field(alias)设置别名,同时开启allow_population_by_field_name确保输入解析兼容;序列化时通过by_alias=True触发别名输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 22:14:58