我正在尝试使用字典更新值。
我的user_id
已设置。我要update date_synced where user_id=user_id
。用户表如下所示:User(user_id, mail, active, activity_level, date_synced)
。
字典dictUsers看起来像:
[{'user_id': 1, 'date_synced': '2019-05-22 10:42:25'},
{'user_id': 8, 'date_synced': '2019-05-22 10:42:25'}]
我尝试过的
sql = 'UPDATE User SET {}'.format(', '.join('{}'.format(k) for k in dictUsers))
conn.execute(sql, dictUsers.values())
我的错误:
AttributeError: 'list' object has no attribute 'values'
预期输出在我的用户表中已更新为date_synced。我怎样才能做到这一点?
最佳答案
尝试这样的事情(从official documentation开始):
stmt = users.update().\
values(name='ed wood').\
where(users.c.id == addresses.c.id)
conn.execute(stmt)
在您的情况下,应该是这样的。您可以在字典中循环执行此操作以为每个用户执行以下操作:
stmt = user.update().\
values(date_synced=dictUsers[i].date_synced).\
where(user.c.user_id == dictUsers[i].user_id)
conn.execute(stmt)