gpt4 book ai didi

python - 如何获取 python protobuf 消息的枚举字段的值名称

转载 作者:行者123 更新时间:2023-11-28 17:34:39 25 4
gpt4 key购买 nike

我还没有进入 protobuf,但我会尝试用短语表达问题。鉴于我有:

  enum SourceType {
WEB = 1;
}
message Message {
optional SourceType source = 6;
}

我有消息,它是 Message 的一个实例,我想像打印消息一样获取源的值。但是做 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

最佳答案

EnumTypeWrapper 类有一个Name 方法,它返回一个enmum 值的名称。因此在这种情况下,从 Message_pb2 导入 SourceType 后,SourceType.Name() 将返回值的名称。

关于python - 如何获取 python protobuf 消息的枚举字段的值名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31728393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com