Буферы протокола повторного поля - PullRequest
0 голосов
/ 30 апреля 2020

Я получил это в моем .proto файле:

message Request {
    repeated string test = 2;
//    string test = 2;

}

Есть функция:

def hash_md5(data):
    print(data)
    return data

Есть код client:

channel = grpc.insecure_channel('localhost:6066')
stub = mle_service_pb2_grpc.DataHashStub(channel)
text = ['Scio me nihil scire']
to_md5 = mle_service_pb2.Request(test=text)
response = stub.hash_md5(to_md5)
print('-----------',response)

Но есть исключение Exception calling application: Assignment not allowed to repeated field "test" in protocol message object. Если я изменю тип в .proto, например, на строку, а в client to text = ['Scio me nihil scire'] все будет работать. Как я могу исправить это с повторным типом?

1 Ответ

3 голосов
/ 01 мая 2020

Это сбивает с толку (и укусил меня тоже), но вы не можете назначить повторные поля (или сообщения) напрямую.

См. Повторные поля

...