4

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

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

4

4 回答 4

8

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

于 2010-01-05T01:13:50.903 回答
1

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

[编辑]

看看结构模块:http ://docs.python.org/library/struct.html

于 2009-12-07T11:47:39.257 回答
0

目前尚不清楚您要做什么:

  1. 对整个消息的序列化形式执行某些操作(来自 SerializeAsString 方法)。不确定你想用这个做什么?
  2. 在 protobuf 消息中存储一个字节字符串 - 只需使用bytes.proto 文件中的类型和 python 中的字节字符串作为变量。
于 2009-12-07T11:46:26.517 回答
0

您可以使用 Pythons Strings 来获取 proto 缓冲区序列化数据(不管它们是如何创建的 - 在 Python、Java、C++ 或任何其他语言中)。

这些是来自 Pythons 版本的 proto buffers 教程的行: address_book.ParseFromString(f.read())

于 2009-12-07T15:45:22.730 回答