我试图在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)
一起工作。
思考??感谢