使用 Python,如何获取 Google protobuf 消息的二进制序列化?
-
13-09-2019 - |
题
我在中看到函数 SerializeAsString protobuf Python 文档, ,但就像这样表明的,这给了我二进制数据的字符串版本。有没有一种方法可以使用Python序列化和解析protobuf数据的二进制数组?
我们有一个 C++ 应用程序,它将 protobuf 消息作为二进制数据存储在文件中。我们想使用 Python 读取和写入该文件。
解决方案
Python字符串可以容纳的二进制数据,因此SerializeAsString
返回二进制数据。
其他提示
目前尚不清楚你想做什么:
- 对整个消息的序列化形式执行某些操作(来自 SerializeAsString 方法)。不确定你想用这个做什么?
- 将字节字符串存储在 protobuf 消息中 - 只需使用
bytes
在 .proto 文件中输入变量,并在 python 中输入一个字节字符串。
您可以使用Python的字符串获得原缓冲串行数据(不要紧,他们洁具如何装箱 - 在Python,Java和C ++或其他语言)。
这些是从原蟒版本缓冲器教程行:
address_book.ParseFromString(f.read())
不隶属于 StackOverflow