Используя Python, как мне получить двоичную сериализацию моего сообщения Google protobuf?

StackOverflow https://stackoverflow.com/questions/1859438

  •  13-09-2019
  •  | 
  •  

Вопрос

Я вижу функцию SerializeAsString в документация protobuf Python, но, как это предполагает, это дает мне строковую версию двоичных данных.Есть ли способ сериализации и синтаксического анализа двоичного массива данных protobuf с использованием Python?

У нас есть приложение на C ++, которое хранит сообщения protobuf в виде двоичных данных в файле.Мы хотели бы читать и записывать в файл с помощью Python.

Это было полезно?

Решение

Строки Python могут содержать двоичные данные, поэтому SerializeAsString возвращает двоичные данные.

Другие советы

Я думаю, что строки - это обычный способ представления двоичных данных в Python.Что именно ты хочешь сделать?

[Править]

Взгляните на модуль struct: http://docs.python.org/library/struct.html

Непонятно, что вы хотите сделать:

  1. Сделайте что-нибудь с сериализованной формой всего сообщения (из метода SerializeAsString).Не уверен, что бы ты хотел с этим сделать?
  2. Сохраните байтовую строку внутри сообщения protobuf - просто используйте bytes введите в файле .proto и строку байтов в python для переменной.

Вы можете использовать строки Pythons для получения сериализованных данных proto buffers (не имеет значения, как они упакованы - на Python, Java, C ++ или любом другом языке).

Это строка из Pythons версии proto buffers tutorial:address_book.ParseFromString(f.read())

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top