Я еще не в protobuf, но я постараюсь рассказать вопрос. Учитывая, у меня есть:Как получить значение имя поля перечисления python protobuf
enum SourceType {
WEB = 1;
}
message Message {
optional SourceType source = 6;
}
У меня есть сообщение, которое является экземпляром сообщения, и я хочу, чтобы получить значение источника так же, как печать сообщения. Но выполнение message.source дает мне код. Я хочу получить значение только от объекта, а не используя другие перечисления/сопоставления/константы. В последней строке у меня есть пример того, как я могу достичь ожидаемого значения, но я ищу более элегантный способ.
> message
<Message_pb2.Message object at 0x7f78561a83c8>
> print message
source: WEB
> print message.source
1
> message.DESCRIPTOR.fields_by_name['source'].enum_type.values_by_number[1].name
WEB
Я написал функцию помощника :( – mihaicc