问题:使用sqlalchemy如何更新json类型字段的数据
解决:获取json数据时虽然类型是dict,但仍需要进行dict()转换,否则无法更新
方法:
user = self.db.query(User).filter(
User.id == user_data['id']).first()
if not user:
info = {'country': user_data['country'],
'city': user_data['city']}
user = User(
nickname=user_data['nickname'],
info=info)
self.db.add(user)
else:
user.nickname=user_data['nickname']
info=dict(user.info) # 注意这一步,不进行dict转换,就更新不成功
info['country']=user_data['country']
info['city']=user_data['city']
user.info=info
self.db.commit()