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

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

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

Ответы [ 4 ]

4 голосов
/ 05 января 2010

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

1 голос
/ 07 декабря 2009

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

[Изменить]

Посмотрите на модуль struct: http://docs.python.org/library/struct.html

0 голосов
/ 07 декабря 2009

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

Это строка из учебника по прото-буферам в версии Pythons: address_book.ParseFromString(f.read())

0 голосов
/ 07 декабря 2009

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

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