我有一个包含用户数据的表,我想使用字典列表更新许多用户的信息。目前,我正在使用 for 循环一次发送一个字典的更新语句,但速度很慢,我希望有一种批量方法可以做到这一点。
user_data = [{'user_id' : '12345', 'user_name' : 'John'}, {'user_id' : '11223', 'user_name' : 'Andy'}]
connection = engine.connect()
metadata = MetaData()
for row in user_data:
stmt = update(users_table).where(users_table.columns.user_id == row['user_id'])
results = connection.execute(stmt, row)
提前致谢!
最佳答案
from sqlalchemy.sql.expression import bindparam
connection = engine.connect()
stmt = users_table.update().\
where(users_table.c.id == bindparam('_id')).\
values({
'user_id': bindparam('user_id'),
'user_name': bindparam('user_name'),
})
connection.execute(stmt, [
{'user_id' : '12345', 'user_name' : 'John', '_id': '12345'},
{'user_id' : '11223', 'user_name' : 'Andy', '_id': '11223'}
])
关于python - SQLAlchemy - 使用字典列表更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42310430/