我将我的模型类定义如下:
class MedicalPlan(Base):
__tablename__ = "medical_plans"
id = Column(Integer, nullable=False , primary_key=True)
issuer_id = Column(Integer, ForeignKey('issuers.id'), nullable=False)
service_area_id = Column(Integer).... and so
我使用下面的代码创建了一个会话,我使用它来执行大多数sql操作:
def get_session():
engine = create_engine('postgresql+psycopg2://postgres:postgres@localhost/db')
Session = sessionmaker(engine)
return Session()
我有我想要作为批量插入插入的字典列表。
在documentation中,我可以使用如下代码查看可以插入的位置:
connection.execute(table.insert(), [
{'id':'12','name':'a','lang':'eng'},
{'id':'13','name':'b','lang':'eng'},
{'id':'14','name':'c','lang':'eng'},
]
)
我的问题是如何以我提供的映射方式使用我的模型类执行这样的操作。
像这样的东西不起作用:
conn.execute(MedicalPlans.insert(), list_of_dict)
发布于 2018-10-17 03:45:05
映射类的表应该是可用的
MyTable.__table__
因此,MedicalPlan.__table__.insert()
应该可以工作。
在Ilja链接的问题中还有其他选择,但大多数都不是那么有效- bulk_insert_mappings
会接近。
https://stackoverflow.com/questions/52842887
复制相似问题