0

pickle を使用して mysql にオブジェクトを保存しようとしていますが、何をしてもデータを unpickle できないようです。

私のmysqlデータベース

http://i.imgur.com/xCyZtIO.png

私のmysql接続機能

conn = MySQLdb.connect (host = "localhost", user = "user", passwd = "password", db = 'database', use_unicode=True)

データの保存

cursor.execute('UPDATE matchmaking set `elo` = %s WHERE `token` = %s', (pickle.dumps(Rating()) , y[0] ))

データのロード

cursor.execute('SELECT * FROM matchmaking where `gameid` = %s LIMIT 200', (row[0]))
player1 = pickle.loads(player[x][2])

KeyError: '"'

print player[x]

(u'35dc00eeb1fa2a49efcae7d2a8233cef', 1L, '"ccopy_reg\n_reconstructor\np0\n(ctrueskill\nRating\np1\nc_ builtin _\nobject\np2\nNtp3\nRp4\n(dp5\nS\'tau\'\np6\nF0 .35999999999999993\nsS\'pi\'\np7\nF0.01439999999999998\nsb."', 2L)

4

1 に答える 1

0

ピクルされた文字列を二重引用符で囲みます。.strip('"')の前にそれらを取り除くために使用しますloads。余分な引用符が付けられた理由はわかりませんが、MySQL には詳しくありません。

于 2013-09-10T05:36:22.013 に答える