Ответ 1
Люди обычно записывают словарь как список пар ключ-значение, а затем перестраивают словарь на другом конце.
message Pair {
optional string key = 1;
optional string value = 2;
}
message Dictionary {
repeated Pair pairs = 1;
}
Есть ли способ сериализации словаря с использованием буферов протокола, или мне придется использовать Thrift, если мне это нужно?
Люди обычно записывают словарь как список пар ключ-значение, а затем перестраивают словарь на другом конце.
message Pair {
optional string key = 1;
optional string value = 2;
}
message Dictionary {
repeated Pair pairs = 1;
}
Для будущих искателей ответов ProtoBuf теперь поддерживает Карты изначально:
message MapMessage
{
map<string, string> MyMap = 1;
}
Вы можете проверить ProtoText пакет.
Предположим, что вы хотите сериализовать dict person_dict
на предварительно определенный объект PersonBuf
protobuf, определенный в модуле personbuf_pb2
.
В этом случае, чтобы использовать ProtoText,
import ProtoText
from personbuf_pb2 import PersonBuf
obj = PersonBuf()
obj.update(person_dict)