使用Python,我怎么得到我的谷歌的protobuf消息的二进制序列化?(Using Python

2019-09-29 13:52发布

我看到在功能SerializeAsString protobuf的Python文档 ,但像这样的暗示,这给了我的二进制数据的字符串版本。 有序列化和解析使用Python的protobuf数据的二进制数组的方法吗?

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

Answer 1:

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



Answer 2:

我认为,字符串在Python中表示二进制数据的常用方法。 那你究竟想干什么?

[编辑]

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



Answer 3:

它不知道你要怎么做:

  1. 做一个完整的信息(从SerializeAsString方法)的序列化形式的东西。 不知道你会想这个做什么?
  2. 存储protobuf的消息中的字节字符串-只使用bytes在.proto文件类型,Python中的字节字符串变量。


Answer 4:

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

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



文章来源: Using Python, how do I get a binary serialization of my Google protobuf message?