Как создать список сообщений в сообщении с protobuf в Python - PullRequest
0 голосов
/ 27 июня 2019

У меня есть структура protobuf, определенная следующим образом:

    syntax = "proto3";

    message Register {

        string name = 1;
        Access access = 2;
        uint64 deafult_value = 3;
        uint64 value = 4;
        uint64 offset = 5;
        int32 index = 6;
        string description = 7;
        int32 register_size = 8;
        repeated Field fields_list = 9;
    }

    message Field {

        string name = 1;
        string regName = 2;
        Access access = 3;
        int32 offset = 4;
        int32 length = 5;
        string description = 6;
        uint64 value = 7;
    }

    message Access {
        bool read = 1;
        bool write = 2;
    }

Теперь я хочу создать новый реестр со списком полей в Python, и я попробовал следующее:

    proto_reg = DataStructs.Register()
    proto_field = DataStructs.Field()
    proto_reg.name ="test"
    proto_reg.fields_list.extend(proto_field)

но я получаю исключение:

   TypeError: Value must be iterable

что я делаю не так?

1 Ответ

0 голосов
/ 27 июня 2019

Ну, ответ был, что мне нужно обернуть proto_reg.fields_list.extend(proto_field) с [] так что это изменение работает:

proto_reg.fields_list.extend([proto_field])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...