sqlalchemy2.x类的属性反序列化会报错
序列化反序列化很好用的一个库,不过本人最近在用sqlalchemy2.x,类的属性反序列化会报错
from datetime import datetime
from objtyping import objtyping
from sqlalchemy import Integer, String, VARCHAR, DateTime
from sqlalchemy.orm import DeclarativeBase
from sqlalchemy.orm import Mapped, mapped_column
class Base(DeclarativeBase):
pass
class Area(Base):
__tablename__ = 'area'
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True, nullable=False)
code: Mapped[str] = mapped_column(String(12), nullable=False)
name: Mapped[str] = mapped_column(VARCHAR(15), nullable=False)
level: Mapped[int] = mapped_column(Integer, nullable=False)
pcode: Mapped[str] = mapped_column(String(12), nullable=False)
create_time: Mapped[datetime] = mapped_column(DateTime, nullable=False)
update_time: Mapped[datetime] = mapped_column(DateTime, onupdate=datetime.now)
def __str__(self):
return self.name
__repr__ = __str__
if __name__ == '__main__':
area = Area(id=1, code='213123131', name='里斯', level=1, pcode='1212313131')
s = objtyping.to_primitive(area)
print(s)
print(objtyping.from_primitive(s, Area))
会将数据库字段判断为sqlalchemy.orm.MappedColumn类型,但实际值为基本类型
确实有这个问题,近期修复一下
rufeng-h @.***> 于2023年4月14日周五 17:33写道:
序列化反序列化很好用的一个库,不过本人最近在用sqlalchemy2.x,类的属性反序列化会报错 `from datetime import datetime
from objtyping import objtyping from sqlalchemy import Integer, String, VARCHAR, DateTime from sqlalchemy.orm import DeclarativeBase from sqlalchemy.orm import Mapped, mapped_column
class Base(DeclarativeBase): pass
class Area(Base): tablename = 'area' id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True, nullable=False) code: Mapped[str] = mapped_column(String(12), nullable=False) name: Mapped[str] = mapped_column(VARCHAR(15), nullable=False) level: Mapped[int] = mapped_column(Integer, nullable=False) pcode: Mapped[str] = mapped_column(String(12), nullable=False) create_time: Mapped[datetime] = mapped_column(DateTime, nullable=False) update_time: Mapped[datetime] = mapped_column(DateTime, onupdate=datetime.now)
def str(self): return self.name
repr = str
if name == 'main': area = Area(id=1, code='213123131', name='里斯', level=1, pcode='1212313131') s = objtyping.to_primitive(area) print(s) print(objtyping.from_primitive(s, Area))`
会将数据库字段判断为sqlalchemy.orm.MappedColumn类型,但实际值为基本类型
— Reply to this email directly, view it on GitHub https://github.com/songofhawk/objtyping/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAV2PWEPD52QWNXJZTFMG6LXBEKXLANCNFSM6AAAAAAW6FZWYI . You are receiving this because you are subscribed to this thread.Message ID: @.***>