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

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

有帮助吗?

解决方案

Python字符串可以容纳的二进制数据,因此SerializeAsString返回二进制数据。

其他提示

我认为字符串是在Python来表示二进制数据的通常的方式。那你究竟想干什么?

[编辑]

有一个在该结构模块: http://docs.python.org/library /struct.html

目前尚不清楚你想做什么:

  1. 对整个消息的序列化形式执行某些操作(来自 SerializeAsString 方法)。不确定你想用这个做什么?
  2. 将字节字符串存储在 protobuf 消息中 - 只需使用 bytes 在 .proto 文件中输入变量,并在 python 中输入一个字节字符串。

您可以使用Python的字符串获得原缓冲串行数据(不要紧,他们洁具如何装箱 - 在Python,Java和C ++或其他语言)。

这些是从原蟒版本缓冲器教程行: address_book.ParseFromString(f.read())

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top