我正在访问一个提供1)protobuf模式和2)给定protobuf消息的二进制数据的web服务。protobuf模式以ZIP格式检索,并包含一个.proto文件,该文件的定义大致如下:
message FooMessage {
//stuff
...
}
//other .proto fun...
获取.proto文件后,我编译它:
^{pr2}$然后导入模块:
module = importlib.import_module(libName, package=pkg)
下一步是获取给定对象的二进制数据。我这样做并将其存储为data = io.BytesIO
对象。在
所以现在我想用在.proto文件ala:
obj = module.FooMessage(data)
问题:
module
中检索FooMessage
类名
我已经导入以便动态构建对象?在FooMessage_pb2.py
对象的明显方法。似乎没有一个方法可以接受二进制数据来实例化对象ala:obj = module.FooMessage(data)
很明显我是在用错误的方式来思考这个问题。我将非常感谢你的帮助。在
对于#1,它们在模式中包含类名。我只是错过了。在
对于#2,我只需要使用
module.FooMessage.FromString(data)
方法,这在文档中并不明显。在相关问题 更多 >
编程相关推荐