Untitled
unknown
python
a year ago
1.0 kB
8
Indexable
from google.protobuf import descriptor_pool from google.protobuf import message_factory from google.protobuf import descriptor_pb2 # 这是你的.proto文件的内容,用字符串表示 proto_file = """ syntax = "proto3"; package test; message TestMessage { string test_field = 1; } """ # 创建一个FileDescriptorProto对象 file_descriptor_proto = descriptor_pb2.FileDescriptorProto() # 使用文本格式的protobuf解析器来填充FileDescriptorProto text_format.Merge(proto_file, file_descriptor_proto) # 创建一个描述符池并将FileDescriptorProto添加到其中 descriptor_pool = descriptor_pool.DescriptorPool() file_descriptor = descriptor_pool.BuildFile(file_descriptor_proto) # 使用消息工厂来创建一个动态消息 message_factory = message_factory.MessageFactory() TestMessage = message_factory.GetPrototype(file_descriptor.message_types_by_name["TestMessage"]) # 现在你可以像通常那样使用这个消息 test_message = TestMessage() test_message.test_field = "Hello, world!" print(test_message)
Editor is loading...
Leave a Comment