我遇到了一個問題,在sqlalchemy中提交了對pickle類型(列表)的更改。這將會在事情發生後沒有任何事情發生。SQLAlchemy提交pickle類型
這是我的我的作用,我嘗試提交:
def commit_move(game_id, player, move):
game = game_query(game_id)
if player == 'human':
game.human_spaces.append(move)
if player == 'ai':
game.ai_spaces.append(move)
game.available_spaces.remove(move)
print game.human_spaces
print game.ai_spaces
print game.available_spaces
print "----"
session.add(game)
session.commit()
這裏的表是如何設置:
class Game(Base):
__tablename__ = 'game'
id = Column(Integer, primary_key=True)
human_spaces = Column(PickleType)
ai_spaces = Column(PickleType)
available_spaces = Column(PickleType)
這裏是我使用來測試它的代碼:
game_id = create_game()
print game_id
print get_available_spaces(game_id)
print get_human_spaces(game_id)
print get_ai_spaces(game_id)
print "---------"
commit_move(game_id, 'human', 7)
print get_available_spaces(game_id)
print get_human_spaces(game_id)
print get_ai_spaces(game_id)
,這裏是什麼好醇」端告訴我:
1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[]
[]
---------
[7]
[]
[1, 2, 3, 4, 5, 6, 8, 9]
----
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[]
[]
我敢肯定這件事情簡單我缺少在這裏,但任何幫助將不勝感激!
可以添加更多的細節你問這個問題?也許你想要的輸出是什麼? –
我的問題是:我能做些什麼,以便我對這些列表所做的更改能夠正確地提交給數據庫? 底部代碼塊顯示打印在終端上的內容。該塊的中間部分顯示了我想要的值,並且在提交之前它們是正確的。但是在我提交後,(底部)顯示數據庫中的值沒有改變。 有什麼我失蹤?我有一種感覺,它與PickleType有關,但我不完全確定,並希望我可以與對sqlalchemy有更多經驗的人得到一些反饋。 – HaydenThomas