我想解码protobuf。
protobuf 数据示例:
0a06282c0241057a10011805220d080510bea3f493062a03010c1628f1a6f493063002382b4001481482010f383634333233303532343736343839
我可以在线解码(例如通过https://protobuf-decoder.netlify.app/)工作正常。
该网站在没有原始 .proto 文件的情况下解码 Protobuf。所有解码都是通过 JavaScript 在本地完成(在 GitHub 上贡献)。
我怎样才能在Python中做到这一点?
我尝试这个解决方案但不存在.proto文件。
从该网站获取原始解码,然后自己编写一个
.proto
文件。
例如,获取输出的第一行:
字节范围 字段编号 类型 内容 0-8 1 字符串 (,Az 8-10 2 varint 作为 Int:1 有符号整数:-1 10-12 3 varint 作为 Int:5 有符号整数:-3
你会写:
message MyMessage {
string field1 = 1;
int32 field2 = 2;
int32 field3 = 3;
}
一旦弄清楚这些字段的实际含义,您就可以指定更合理的名称而不是
fieldX
。如果您对某些字段不感兴趣,可以将它们从 .proto 文件中删除,protobuf 解码器将忽略它们。