1

Python 用の非常に優れたモジュールを見つけました。知っているのは Trueskill です。

http://trueskill.org/

私が抱えている問題は、評価をデータベースに保存して戻す方法がわからないことです(mysqlなどに投稿する方法は知っています)。trueskill オブジェクトが与えられました。それを str に変換して、mysql に保存できるようにする必要があります。jsonでシリアライズできません。

例は

player1 = Rating()
print player1
trueskill.Rating(mu=25.000, sigma=8.333)
4

2 に答える 2

3

trueskill.Ratingオブジェクトをそのまま保存するには、mu と sigma の値のみを保持する必要があります。

r = trueskill.Rating()
cursor.execute('''
    UPDATE matchmaking
    SET mu = %f AND sigma = %f
    WHERE token = %s
''', (r.mu, r.sigma, token))

Pickle または JSON でシリアライズしないでください。それらはデータベース容量を浪費します。

于 2013-09-15T18:33:14.703 に答える
0

trueskill.Rating オブジェクトは pickle をサポートします。pickle.dumpsRating オブジェクトをシリアル化するために使用します。例えば:

>>> 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)
于 2013-09-05T04:19:29.233 に答える