Google Protocol Buffers + Pythonから使う
Google Protocol BuffersをPythonから使う
取得
以下から最新の[compiler]と[full source]を両方取得してくる。
https://code.google.com/p/protobuf/downloads/list
ソースを適当に展開したら「protobuf-x.x.x/src」に、Compilerを展開して得られる「protoc.exe」を配置する。
これを忘れると、次のセットアップが失敗するので要注意
セットアップ
基本的には「protobuf-x.x.x/python/readme.txt」にセットアップの仕方が載っているので
以下の手順で上手く行かない場合は、随時参照して欲しい。
$ cd protobuf-x.x.x/python $ python setup.py build $ python setup.py test
最後のテストで[OK]と表示されたら
$ python setup.py install
でインストールする。
Dumpする
PythonでProtocol buffersのオブジェクトをdumpしたい場合は
以下の小さなライブラリを使用して、dictに変換すると良い
https://github.com/davyzhang/protobuf-to-dict
僕はdictに変換した後、json形式に変換して出力している。
import json from protobuf_to_dict import protobuf_to_dict d = protobuf_to_dict(proto_obj) print json.dumps( d, indent=2, sort_keys=True, separators=(',', ': '), encoding="utf-8")