SQLAlchemy插入w/字典

2024-04-29 07:24:24 发布

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

对于这种情况,假设有一个用声明基Game声明的表,列名为“espn_Game_id”和“a_name”。变量“s”下有一个打开的会话对象。所以这是有效的:

s.add(Game(espn_game_id=888, a_name='lol'))
s.commit()

这失败了:

n = {"espn_game_id": 888, "a_name": 'lol'}
s.add(Game(n))
s.commit()

这是可行的(假设已经有一个espn_game_id==888的条目):

n = {"a_name": 'lol'}
s.query(Game).filter(Game.espn_game_id==888).update(n)
s.commit()

为什么第二种情况会失败,有没有办法让这种语法在这里工作?


Tags: 对象nameaddidgame声明情况update