我正在处理protobuf协议,并且遇到了对未知字段和类型的消息进行解码的需要。我知道protoc --decode_raw
在这方面做得很好(虽然不够精确,但足够好)。
我当时正在考虑在外壳中运行protoc --decode-raw
并让Python读取其内容,并将其解析为字典,但是我认为这是实现的最后手段。
是否存在实现相同功能的Python方法?
答案 0 :(得分:0)
我也有同样的需求,但是据我发现,目前还没有官方的API。有一些内部方法,例如在空消息上访问msg._unknown_fields
和internal.decoder。但是这些都不是官方API的一部分,并且在版本之间有所不同。
如果shell方法过于笨拙,那么最好的选择是使用自定义Python代码基于documentation实现解码。