1 回答
TA贡献1946条经验 获得超3个赞
我建议坚持使用The Zen of Python。
显式优于隐式。
我会在 上实现一个方法SourceDB来提供我想要的对象的字典格式。
class SourceDB(Base):
__tablename__ = "source_db"
id = Column(Integer, primary_key=True)
name = Column(String(100))
place = Column(String(100))
def as_dict(self):
return dict(name=self.name, place=self.place)
并像这样使用它
session.add(DestDB(**src_obj.as_dict()))
尽管您可以更动态地执行此操作,但我仍然建议使用更明确的方法。
class SourceDB(Base):
__tablename__ = "source_db"
id = Column(Integer, primary_key=True)
name = Column(String(100))
place = Column(String(100))
def as_dict(self, fields):
return dict(field: getattr(self, field) for field in fields if hasattr(self, field))
并这样做
session.add(DestDB(src_obj.as_dict(("name", "place"))))
添加回答
举报