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

使用Python,如何获得Google protobuf消息的二进制序列化?,python,protocol-buffers,Python,Protocol Buffers,我在中看到函数SerializeAsString,但正如这所建议的,这为我提供了二进制数据的字符串版本。有没有一种方法可以使用Python序列化和解析protobuf数据的二进制数组 我们有一个C++应用程序,它将原始BuffF消息存储为文件中的二进制数据。我们希望使用Python读取和写入该文件。不清楚您要执行的操作: 对整个消息的序列化形式执行某些操作(来自SerializeAsString方法)。不知道你想用这个做什么 在protobuf消息中存储一个字节字符串-只需在.proto文件中使

我在中看到函数SerializeAsString,但正如这所建议的,这为我提供了二进制数据的字符串版本。有没有一种方法可以使用Python序列化和解析protobuf数据的二进制数组


我们有一个C++应用程序,它将原始BuffF消息存储为文件中的二进制数据。我们希望使用Python读取和写入该文件。

不清楚您要执行的操作:

  • 对整个消息的序列化形式执行某些操作(来自SerializeAsString方法)。不知道你想用这个做什么
  • 在protobuf消息中存储一个字节字符串-只需在.proto文件中使用
    bytes
    类型,在python中使用一个字节字符串作为变量

  • 我认为字符串是Python中表示二进制数据的常用方式。你到底想做什么

    [编辑]


    查看结构模块:

    < P>可以使用Python字符串获取原始缓冲区序列化数据(不管它们是如何用Python、java、C++或其他语言编写的)。 这是Pythons版proto buffers教程中的一行:
    address\u book.ParseFromString(f.read())
    Python字符串可以保存二进制数据,因此
    SerializeAsString
    返回二进制数据。

    我不是Python程序员,但JavaString有
    getBytes()
    方法。2019年-上述函数现在可以重命名为
    SerializeToString
    (我不知道回答这个问题时它是否真的是
    SerializeAsString
    ),添加注释是为了让那些关注的人受益。