Есть ли способ сериализации словаря с использованием буферов протокола, или мне придется использовать Thrift, если мне это нужно?Словарь в буферах протоколов
ответ
Люди обычно записывают словарь как список пар ключ-значение, а затем перестраивают словарь на другом конце.
message Pair {
optional string key = 1;
optional string value = 2;
}
message Dictionary {
repeated Pair pairs = 1;
}
Есть ли способ сделать то же самое с динамическим типом? У меня есть 'Dictionary
Ну, нет. Протобуф не является общим протоколом сериализации объектов. Вам необходимо определить сообщения protobuf для всех данных, которые вы хотите сериализовать. (Честно говоря, если у вас есть карта
@Mike Вам нужно будет создать поле для каждого типа, в котором он мог бы быть *, что является ошибкой, ожидающей только бывает. –
Вы можете проверить комплект ProtoText.
Предположим, что вы хотите сериализовать dict person_dict
на предопределенный объект protobuf PersonBuf
, определенный в модуле personbuf_pb2
.
В этом случае использовать прототекст,
import ProtoText
from personbuf_pb2 import PersonBuf
obj = PersonBuf()
obj.update(person_dict)
Для будущих искателей ответа, ProtoBuf now supports Maps изначально:
message MapMessage
{
map<string, string> MyMap = 1;
}
Обратите внимание, что Карты по-прежнему не могут быть повторены. – mattes
- 1. Наследование в буферах протоколов
- 2. Обработка исключений в буферах протоколов C++
- 3. В чем причина кодирования ZigZag в буферах протоколов и Avro?
- 4. Как я могу представить двумерный массив в буферах протоколов?
- 5. Как узнать, какое сообщение я получил, используя библиотеку протоколов протоколов?
- 6. Рекурсивные структуры данных в буферах протоколов, Apache Thrift или любом другом протоколе сериализации структуры данных?
- 7. Мониторинг протоколов протоколов JSON
- 8. Сортировка элементов в повторяющемся поле сообщения в буферах протокола Google
- 9. FreeBSD: вопросы о кольцевых буферах NIC, буферах mbufs и bpf
- 10. Клики в буферах очереди OpenAL
- 11. Чтение * .wav файлов в буферах
- 12. Список протоколов в приложении Twisted
- 13. Существуют ли приложения, предлагающие API протоколов протоколов?
- 14. Извлечение сетевых протоколов протоколов с использованием PCAP.Net
- 15. Понимание протоколов
- 16. Определение протоколов в Swift
- 17. Наследование в быстрых протоколов
- 18. Набор протоколов в Swift
- 19. Вопрос о буферах соединения TCP
- 20. Номера слотов на постоянных буферах
- 21. Вопросов о равномерных буферах объекты
- 22. Пользовательские сопоставления в текстовых буферах справки
- 23. Несколько корневых таблиц в плоских буферах
- 24. Добавление строковых массивов в буферах протокола
- 25. Стратегии смягчения эффектов опроса в кольцевых буферах
- 26. Избегание повторяющихся данных в буферах OpenGL
- 27. Как отключить номера строк в буферах Helm?
- 28. Как сделать git commits в буферах Emacs
- 29. Получить дескриптор поля в буферах протокола
- 30. Что означает BE или LE в буферах?
дублируют http://stackoverflow.com/questions/3874024/how-does- protobuf-net-support-for-dictionary-keyvaluepair-works –
Совсем не дублируется. Этот вопрос касался привязок .net. OP не указывает языковую среду. – JesperE