事情是这样的....
今天看了一个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
(message, including_default_value_fields=False, preserving_proto_field_name=False, use_integers_for_enums=False, descriptor_pool=None, float_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:
如果已设置,请使用此选项指定浮点字段的有效数字