Как определить список Python с помощью dict в protobuf GRPC? - PullRequest
0 голосов
/ 16 октября 2018

in .proto:

message HelloReplyList { repeated string message = 1; }

следующий код работает нормально

def SayHelloList(self, request, context):
    l = ['a', 'b', 'c']
    return helloworld_pb2.HelloReplyList(message=l)

следующий код работает ошибка: TypeError: {'a': '1'} имеет тип dict, но ожидается один из: байтов, Unicode

def SayHelloList(self, request, context):
    d = [{'a': '1'}, {'b': '2'}]
    return helloworld_pb2.HelloReplyList(message=d)

, если я хочу использовать [{'a':'1'},{'b':'2'}].как мне определить в .proto?

1 Ответ

0 голосов
/ 18 октября 2018

Я не думаю, что protobuf python принимает [{'a': '1'}, {'b': '2'}].{'a': '1'} может быть полем карты в protobuf, [] - списком.Мы не поддерживаем повторное поле карты.

Если данные {{a ':' 1 ',' b ':' 2 '}, вы можете определить файл .proto как: message HelloReplyList {map map_field =1;}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...