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"))))
添加回答
舉報