Буфер протокола в Python: Как установить значение для вложенного элемента - PullRequest
0 голосов
/ 23 января 2020

У меня проблема при попытке установить значение вложенного элемента в файле Protobuf с помощью Python. У меня есть следующий protobuf:

syntax = "proto3";

option java_multiple_files = true;

message OuterLayer{
    InnerLayer sim_card_data = 1;
    string version_number = 3;

    message InnerLayer{
        string iccid = 1;
        string imei = 2;
    }

В Python, я устанавливаю значение с помощью:

raw = OuterLayer()
raw.version_number = "1.0"
raw.InnerLayer.iccid="1"
raw.InnerLayer.imei="2"

Распечатав необработанный класс print (raw), я получил только:

version_number: "1"

Значения Innerlayer не установлены. Что я делаю неправильно ? Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 23 января 2020

InnerLayer - это имя класса, а не имя параметра, поэтому должно работать следующее:

raw = OuterLayer()
raw.version_number = "1.0"
raw.sim_card_data = InnerLayer()
raw.sim_card_data.iccid = "1"
raw.sim_card_data.imei = "2"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...