唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

シリアライズ用のライブラリMessagePackを使ってみた

Pythonシリアライズに使えるライブラリは標準でもpicklejsonなどがありますが,研究室でMessagePackというものを使っている人がいたので試してみました.
MessagePackはバイナリ形式に保存するタイプのもので高速かつ軽量とのこと.
Python以外にも様々な言語でライブラリが配布されています.

インストール

"pip install msgpack-python"がなぜか失敗したので"pip install msgpack-pure"をしました.

実験

シリアライズ前後でリストからタプルに形式が変わってしまうなどの注意点はありますが,簡単に使えそうです.

>import msgpack_pure as msgpack
>serialized = msgpack.packb([1,2,3])
>print msgpack.unpackb(serialized)
(1, 2, 3)

ファイルへの保存用の関数(dump, load)もpickleと同様にあります.

その他

性能比較は様々な所で行われているので省略.
最新のバージョンではencodingの指定が使えるようになっているらしいです(どの実装の話なのかはちょっと調べてないですが