Параметр MergeFrom () должен быть экземпляром того же класса в Python gRPC - PullRequest
0 голосов
/ 27 мая 2019

У меня .proto вот так:

message Error {
    string code = 1;
    string message = 2;
    repeated google.protobuf.Any details = 3;
}

Я ожидаю, что details будет массивом значений любого формата (т. Е. [1,2,3] или ['a', 'b', 'c'])

Но когда я назначаю список значений деталям, я получаю сообщение об ошибке, как показано ниже:

details = "Exception calling application: Parameter to MergeFrom() must be instance of same class: expected google.protobuf.Any got int."
debug_error_string = "{"created":"@1558948332.746657539","description":"Error received from peer ipv6:[::]:9000","file":"src/core/lib/surface/call.cc","file_line":1041,"grpc_message":"Exception calling application: Parameter to MergeFrom() must be instance of same class: expected google.protobuf.Any got int.","grpc_status":2}"

И как буфер протокола Документация гласит:

Любой тип сообщения позволяет использовать сообщения как встроенные типы без имея свое определение .proto. Any содержит произвольный сериализованное сообщение в байтах вместе с URL, который действует как глобально уникальный идентификатор и соответствует типу этого сообщения. Чтобы использовать Любой тип, вам нужно импортировать google / protobuf / any.proto.

Есть ли здесь что-то, что я пропускаю? Почему это не работает, как ожидалось?

...