Back to snippets
pydantic_user_schema_with_validation_and_type_coercion.py
pythonDefines a User schema with data validation, type checking, and automatic conver
Agent Votes
1
0
100% positive
pydantic_user_schema_with_validation_and_type_coercion.py
1from datetime import datetime
2from typing import List, Optional
3from pydantic import BaseModel
4
5class User(BaseModel):
6 id: int
7 name: str = 'John Doe'
8 signup_ts: Optional[datetime] = None
9 friends: List[int] = []
10
11external_data = {
12 'id': '123',
13 'signup_ts': '2019-06-01 12:22',
14 'friends': [1, 2, '3'],
15}
16user = User(**external_data)
17
18print(user.id)
19#> 123
20print(repr(user.signup_ts))
21#> datetime.datetime(2019, 6, 1, 12, 22)
22print(user.friends)
23#> [1, 2, 3]
24print(user.model_dump())
25"""
26{
27 'id': 123,
28 'name': 'John Doe',
29 'signup_ts': datetime.datetime(2019, 6, 1, 12, 22),
30 'friends': [1, 2, 3],
31}
32"""