如何无需实例化Pydantic模型获取示例值字典?
获取Pydantic模型示例字典(无需实例化)
问题描述
现有如下Pydantic模型:
from pydantic import BaseModel, Field class CreatedScRequestResponseSchema(BaseModel): sc_request_id: int = Field(example=145781) sc_request_state_code: int = Field(example=200) sc_request_result_code: str = Field(example="positiv")
需要在不实例化模型的前提下,生成包含各字段示例值的字典:
{"sc_request_id": 145781, "sc_request_state_code": 200, "sc_request_result_code": "positiv"}
解决方案
根据你使用的Pydantic版本,选择对应的方法:
Pydantic v2 版本
直接通过模型的model_fields属性遍历字段,提取example值:
# 接上面的模型定义 example_dict = { name: field.example for name, field in CreatedScRequestResponseSchema.model_fields.items() } print(example_dict) # 输出目标字典
Pydantic v1 版本
v1版本用__fields__属性获取字段信息:
# 接上面的模型定义 example_dict = { name: field.field_info.example for name, field in CreatedScRequestResponseSchema.__fields__.items() } print(example_dict) # 输出目标字典
补充说明
- 原代码遗漏了
Field的导入,实际运行必须补上,否则会报错。 - 如果有字段没设置
example,对应值会是None,可以按需过滤这类键值对。
内容的提问来源于stack exchange,提问作者Альберт Александров
相关产品推荐
相关产品推荐

