我有4個嵌套類,見例如:Python的泡菜丟失數據
class GameInfo:
id = ""
round = ""
# ... etc
class Opponent:
game_info = GameInfo()
name = ""
# ...
class Tournament:
opponent_list = [] # list of Opponent objects
# ...
class Journal(db.Model):
picked_tournament = db.BlobProperty() # here I put picked Tournament object
的問題是:當我在Journal
unpickle pickled_tournament
從GameInfo
的所有數據都將丟失。即opponent.name
顯示正確的值,但opponent.game_info.id
顯示空字符串。
我使用Google App Engine數據存儲來存儲數據,picked_tournament
存儲在BlobProperty()中。要序列化數據,我調用:journal.picked_tournament = pickle.dumps(tournament)
。加載我使用的數據:tournament = pickle.loads(journal.picked_tournament)
爲什麼醃菜不會超過2級?
UPD:數據設置如下:
gi = GameInfo()
gi.id = "1234"
opp = Opponent()
opp.name = "John"
opp.game_info = gi
t = Tournament()
t.opponent_list.append(opp)
# etc...
UPD2:剛發現一切正常開發服務器上的罰款,如果數據庫是sqlite3的,但沒有sqlite3的和Appspot上不起作用!
你不告訴我們在哪兒以及如何設置game_info.id – systempuntoout 2011-02-26 21:37:25
@systempuntoout game_info.id設置自然,看到更新 – rmflow 2011-02-26 22:44:15
你有沒有嘗試過的情況下直接通過Journal.picked_tournament去(這是一個分貝取儲存錦標賽鹹菜。 BlobProperty)?這可能會幫助你找出問題(可能是BlobProperty的事情)。 – aknuds1 2011-02-26 22:47:13