使用Python,如何获得Google protobuf消息的二进制序列化?

Nic*_*ton 1 python protocol-buffers

我在protobuf Python文档中看到了函数SerializeAsString ,但是像这样建议,这给了我二进制数据的字符串版本。有没有一种方法可以使用Python序列化和解析protobuf数据的二进制数组?

我们有一个C ++应用程序,将protobuf消息作为二进制数据存储在文件中。我们想使用Python读写文件。

Nic*_*ton 5

Python字符串可以保存二进制数据,因此SerializeAsString返回二进制数据。

  • 现在是 2019 年 - 上面提到的函数现在可以重命名为 `SerializeToString`(我不知道在回答这个问题时它是否确实是 `SerializeAsString`)添加注释以方便那些来查看的人。 (7认同)
  • 现在是 2022 年,这个答案特定于 Python 2,它于 2020 年达到了生命周期的终点。在 Python 3 中,“SerializeToString”方法返回“bytes”的实例。 (2认同)