使用sqlalchemy进行批量更新

2024-04-20 11:43:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份字典的清单。在

 [{'medical_plan_id': 1039481, u'hearing_aids': '', u'clinical_diagnostic_mri': u'20% coinsurance', u'emergency_room': u'20% coinsurance'}, {'medical_plan_id': 1039482, u'hearing_aids': '', u'clinical_diagnostic_mri': u'20% coinsurance', u'emergency_room': u'20% coinsurance'}]

我可以使用下面的代码进行批量插入-

^{pr2}$

我想在medical_plan_id上使用我的模型MedicalPlanBenefit,运行一个大容量Update()。如何做到这一点?在

我的模特班:

class MedicalPlanBenefit(Base):
    __tablename__ = "medical_plan_benefits"

    id = Column(Integer, nullable=False, primary_key=True)
    medical_plan_id = Column(Integer)
    maximum_out_of_pocket_limit_single = Column(String)
    maximum_out_of_pocket_limit_family = Column(String)

我可以在硬编码绑定到values()后进行更新。我不想这样做,因为列数是50列,我想用dict列表来实现这一点不知怎么的。随便请提出建议。在

stmt = MedicalPlanBenefit.__table__.update()\
                    .where(MedicalPlanBenefit.__table__.c.medical_plan_id == bindparam('med_plan_id'))\
                    .values({'emergency_room': bindparam('emergency_room')})
                conn.execute(stmt, benefits_dict)

Tags: idcolumnintegerroommedicalmriclinicalplan