protobuf之MessageToDict

事情是这样的....

今天看了一个python版的bag解析工具,有一个函数功能是将某某topic的message转成dick类型。

所以使用:

from google.protobuf.json_format import MessageToDict
dict_obj = MessageToDict(msg)

但是跟踪下来,发现dict_obj中的字段名字和msg的不太一样,例如:

如果msg中的某个字段名字是 int xxx_ab;

转成dict_obj后就是int xxxAb;

于是看了一下函数原型:

google.protobuf.json_format.MessageToDict(messageincluding_default_value_fields=Falsepreserving_proto_field_name=Falseuse_integers_for_enums=Falsedescriptor_pool=Nonefloat_precision=None)

including_default_value_fields:

如果为True,则将始终序列化奇异基元字段、重复字段和映射字段。如果为False,则仅序列化非空字段。单数消息字段和其中一个字段不受此选项的影响

preserving_proto_field_name:

如果为True,则使用.proto文件中定义的原始proto字段名称。如果为False,请将字段名称转换为lowerCamelCase。

use_integers_for_enums:

如果为true,则打印整数而不是枚举名称。

descriptor_pool:

用于解析类型的描述符池。如果“None”,则使用默认值

float_precision:

如果已设置,请使用此选项指定浮点字段的有效数字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值