我想编写一个脚本来填充协议缓冲区值,使用JSON文件中给出的值,而不知道.proto文件中的内容。
答案 0 :(得分:0)
我在这里使用此示例消息:
message MyMessage {
int32 foo = 1;
}
您可以使用msg.DESCRIPTOR.fields
获取字段列表:
>>> msg = myproto_pb2.MyMessage()
>>> msg.DESCRIPTOR.fields
<MessageFields sequence>
>>> msg.DESCRIPTOR.fields[0].name
'foo'
但是如果您的json格式与.proto格式匹配,那么Google的protobuf库已经提供了一个json解析器:
>>> google.protobuf.json_format.Parse('{"foo":5}', msg)