Используя Python, как мне получить двоичную сериализацию моего сообщения Google protobuf?
-
13-09-2019 - |
Вопрос
Я вижу функцию SerializeAsString в документация protobuf Python, но, как это предполагает, это дает мне строковую версию двоичных данных.Есть ли способ сериализации и синтаксического анализа двоичного массива данных protobuf с использованием Python?
У нас есть приложение на C ++, которое хранит сообщения protobuf в виде двоичных данных в файле.Мы хотели бы читать и записывать в файл с помощью Python.
Решение
Строки Python могут содержать двоичные данные, поэтому SerializeAsString
возвращает двоичные данные.
Другие советы
Я думаю, что строки - это обычный способ представления двоичных данных в Python.Что именно ты хочешь сделать?
[Править]
Взгляните на модуль struct: http://docs.python.org/library/struct.html
Непонятно, что вы хотите сделать:
- Сделайте что-нибудь с сериализованной формой всего сообщения (из метода SerializeAsString).Не уверен, что бы ты хотел с этим сделать?
- Сохраните байтовую строку внутри сообщения protobuf - просто используйте
bytes
введите в файле .proto и строку байтов в python для переменной.
Вы можете использовать строки Pythons для получения сериализованных данных proto buffers (не имеет значения, как они упакованы - на Python, Java, C ++ или любом другом языке).
Это строка из Pythons версии proto buffers tutorial:address_book.ParseFromString(f.read())