是否需要对protobuf字节串进行反序列化?

时间:2018-01-25 23:15:30

标签: google-app-engine serialization google-cloud-datastore protocol-buffers

我试图在Python中,在GAE(AppEngine)环境之外反序列化一些Protobuf字节串。我想知道我是否需要这个用例的消息模式。

到目前为止,我尝试过的方法包括google.cloud.proto.datastore.v1.entity_pb2.Entity.ParseFromString()

>>> pb = ...  ## fetched a protobuf into `pb` using the Datastore Protobuf API

>>> pb.__class__
<class 'google.cloud.proto.datastore.v1.entity_pb2.Entity'>

>>> serialized = pb.SerializeToString()     ## <-- now `serialized` is a bytestring.
>>> type(serialized)
<type 'str'>

>>> e = google.cloud.proto.datastore.v1.entity_pb2.Entity()
>>> e.ParseFromString(serialized)   ## <-- deserialization
>>> print e  

上面的反序列化实际上有效,所以我假设我不需要知道消息模式。 - 如我错了请纠正我。

但是,我在不同的字节串上尝试了这个,它没有用。但它在GAE环境中与google.appengine.ext.db.model_from_protobuf(bytestring2)一起工作。

思考??感谢

其他说明

有点relevant post

0 个答案:

没有答案