在Python中解码protobuf而不需要proto文件

问题描述 投票:0回答:1

我想解码protobuf。

protobuf 数据示例:

0a06282c0241057a10011805220d080510bea3f493062a03010c1628f1a6f493063002382b4001481482010f383634333233303532343736343839

我可以在线解码(例如通过https://protobuf-decoder.netlify.app/)工作正常。

该网站在没有原始 .proto 文件的情况下解码 Protobuf。所有解码都是通过 JavaScript 在本地完成(在 GitHub 上贡献)。

我怎样才能在Python中做到这一点?

我尝试这个解决方案但不存在.proto文件。

python protocol-buffers protobuf.js protobuf-python
1个回答
0
投票

从该网站获取原始解码,然后自己编写一个

.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 解码器将忽略它们。

© www.soinside.com 2019 - 2024. All rights reserved.