我找到了一个非常好的Python模块,知道是Trueskill。
我遇到的问题是,我不知道如何将评级保存到我的数据库,并加载回来(我知道如何发布到mysql和所有内容)。我有一个trueskill对象,我需要将它转换为str所以我可以将它保存到mysql。我不能json序列化它。
示例是
player1 = Rating()
print player1
trueskill.Rating(mu=25.000, sigma=8.333)
答案 0 :(得分:3)
您只需保留mu和sigma值即可完整保存trueskill.Rating
个对象。
r = trueskill.Rating()
cursor.execute('''
UPDATE matchmaking
SET mu = %f AND sigma = %f
WHERE token = %s
''', (r.mu, r.sigma, token))
不要通过Pickle或JSON序列化。他们浪费你的窘迫能力。
答案 1 :(得分:0)
trueskill.Rating对象支持pickle。使用pickle.dumps
序列化Rating对象。例如:
>>> import trueskill
>>> r = trueskill.Rating(mu=25.000, sigma=8.333)
>>> import pickle # or import cPickle as pickle
>>> s = pickle.dumps(r)
>>> s
"ccopy_reg\n_reconstructor\np0\n(ctrueskill\nRating\np1\nc__builtin__\nobject\np2\nNtp3\nRp4\n(dp5\nS'tau'\np6\nF0.36002880172809215\nsS'pi'\np7\nF0.014401152069123686\nsb."
使用pickle.loads
,您可以将字符串反序列化回Rating对象:
>>> r2 = pickle.loads(s)
>>> r2
trueskill.Rating(mu=25.000, sigma=8.333)