Как динамически создать объект protobuf из строки?Python

Программы на Python
Anonymous
Как динамически создать объект protobuf из строки?

Сообщение Anonymous »

У меня есть определение protobuf, как показано ниже,

Код: Выделить всё

message MyProto {
optional string ip = 1;
optional int32 port = 2;
optional Flags flags = 3;
}

message Flags {
optional bool flag1 = 1;
optional bool flag2 = 2;
}
Моя цель — создать объект MyProto из приведенной ниже строки:

Код: Выделить всё

ip:127.0.0.1
port:8080
Flags:
flag1: True
flag2: False
Я могу создать «пустой» объект с помощью my_proto = MyProto() и установить его атрибут, используя

Код: Выделить всё

setattr(my_proto, "ip", "127.0.0.1")
setattr(my_proto, "port", 8080)
но не могу понять, как «заполнить» сообщение «Флаги» в my_proto. Есть ли какой-нибудь общий способ сделать это? В общем, я имею в виду, что нам нужно выяснить имя сообщения Flags из строки

Код: Выделить всё

Flags:
flag1: True
flag2: False
(поскольку в MyProto могут использоваться другие определения сообщений)

Подробнее здесь: https://stackoverflow.com/questions/790 ... rom-string

Вернуться в «Python»