たとえば、プロトタイプファイルFile.proto
:
enum Test {
ONE = 1;
TWO = 2;
}
ファイルを生成しますFile_pb2.py
からのプロトコル付きFile.proto
。 python-codeで、生成されたファイルFile_pb2.py
自分の辞書を定義せずに。どうやってやるの?
生成されたpythonがFile_pb2.pyコードにあると仮定すると、これを試してください:
file_pb2._TEST.values_by_number[1].name
あなたの場合、これは'ONE'
逆は次のとおりです。
file_pb2._TEST.values_by_name['ONE'].number
あげる 1
。
編集:コメントで@dyooが正しく指摘しているように、後にprotobufライブラリに新しいメソッドが導入されました。
file_pb2.Test.Name(1)
file_pb2.Test.Value('One')
編集:これはproto3で再び変更されました。現在、Name()およびValue()メソッドはEnumTypeWrapperクラスに属しているため、次のようにアクセスできます。
file_pb2.Name(1)
file_pb2.Value('One')