mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
31 lines
693 B
Python
31 lines
693 B
Python
import typing
|
|
|
|
from pydantic import BaseModel, Field
|
|
import sqlalchemy as sa
|
|
from sqlalchemy.ext.declarative import declarative_base
|
|
|
|
|
|
class MyModel(BaseModel):
|
|
metadata: typing.Dict[str, str] = Field(alias='metadata_')
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
|
|
BaseModel = declarative_base()
|
|
|
|
|
|
class SQLModel(BaseModel):
|
|
__tablename__ = 'my_table'
|
|
id = sa.Column('id', sa.Integer, primary_key=True)
|
|
# 'metadata' is reserved by SQLAlchemy, hence the '_'
|
|
metadata_ = sa.Column('metadata', sa.JSON)
|
|
|
|
|
|
sql_model = SQLModel(metadata_={'key': 'val'}, id=1)
|
|
|
|
pydantic_model = MyModel.from_orm(sql_model)
|
|
|
|
print(pydantic_model.dict())
|
|
print(pydantic_model.dict(by_alias=True))
|