mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
f55515820a
* renaming .json -> .model_dump_json * renaming .dict -> .model_dump * renaming .__fields__ -> .model_fields * renaming .schema -> .model_json_schema * renaming .construct -> .model_construct * renaming .parse_obj -> .model_validate * make linters happy * add changes md-file Co-authored-by: Samuel Colvin <s@muelcolvin.com>
35 lines
827 B
Python
35 lines
827 B
Python
from typing import List, Optional
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class Address(BaseModel):
|
|
city: str
|
|
country: str
|
|
|
|
|
|
class User(BaseModel):
|
|
name: str
|
|
address: Address
|
|
friends: Optional[List['User']] = None
|
|
|
|
class Config:
|
|
json_encoders = {
|
|
Address: lambda a: f'{a.city} ({a.country})',
|
|
'User': lambda u: f'{u.name} in {u.address.city} '
|
|
f'({u.address.country[:2].upper()})',
|
|
}
|
|
|
|
|
|
User.update_forward_refs()
|
|
|
|
wolfgang = User(
|
|
name='Wolfgang',
|
|
address=Address(city='Berlin', country='Deutschland'),
|
|
friends=[
|
|
User(name='Pierre', address=Address(city='Paris', country='France')),
|
|
User(name='John', address=Address(city='London', country='UK')),
|
|
],
|
|
)
|
|
print(wolfgang.model_dump_json(models_as_dict=False))
|