python pydantic基本用法
2024年6月24日小于 1 分钟约 216 字
基本用法
from datetime import datetime
from pydantic import BaseModel, ValidationError
from typing import List, Optional
class User(BaseModel):
id: int # 必填字段
name: str = "John" # 有默认值,选填字段
signup_ts: Optional[datetime] = None
friends: List[int] = [] # 列表元素中是int类型或者可以直接转换为int类型
data = {
"id": '123',
"signup_ts": '2024-06-24',
"friends": [1, 2, 3]
}
# 将数据传递给类
try:
user = User(**data)
except ValidationError as e:
print(e.json())
print(repr(user.signup_ts))
print(user.dict())
print(user.schema()) # 将数据类型和格式也返回
print(user.json())
print(user.schema_json()) # 将数据类型和格式也返回
print(user.copy()) # 浅拷贝
print(User.parse_obj(obj=data)) # 解包方式解析数据
print(User.construct(**data)) # 解析数据但是不验证数据。
print(User.parse_raw('{"id": "123"}') # 通过json字符串解析数据
print(User.parse_file('文件路径')) # 通过文件内容解析数据
print(User.__fields__.keys()) # 通过文件内容解析数据