Есть ли способ получить список всех параметров в protobufs в Python? - PullRequest
0 голосов
/ 29 мая 2018

Я хочу написать скрипт для заполнения значений буферов протокола значениями, заданными в файле JSON, не зная, что находится в файле .proto.

1 Ответ

0 голосов
/ 30 мая 2018

Я использую этот пример сообщения здесь:

message MyMessage {
    int32 foo = 1;
}

Вы можете получить список полей, используя msg.DESCRIPTOR.fields:

>>> msg = myproto_pb2.MyMessage()
>>> msg.DESCRIPTOR.fields
<MessageFields sequence>
>>> msg.DESCRIPTOR.fields[0].name
'foo'

Но если ваш формат JSON соответствует.proto, библиотека protobuf от Google уже предоставляет анализатор json:

>>> google.protobuf.json_format.Parse('{"foo":5}', msg)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...