En utilisant Python, comment puis-je obtenir une sérialisation binaire de mon message Google protobuf?

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

  •  13-09-2019
  •  | 
  •  

Question

Je vois la fonction SerializeAsString dans la section protobuf documentation Python , mais comme cela suggère, cela me donne une version chaîne des données binaires. Est-il possible de sérialisation et l'analyse d'un tableau binaire de données protobuf en utilisant Python?

Nous avons une application C ++ qui stocke les messages sous forme de données binaires protobuf dans un fichier. Nous aimerions lire et écrire dans le fichier en utilisant Python.

Était-ce utile?

La solution

chaînes de Python peuvent contenir des données binaires, donc SerializeAsString renvoie des données binaires.

Autres conseils

Je pense que les chaînes sont de la manière habituelle pour représenter des données binaires en Python. Que voulez-vous faire exactement?

[Modifier]

Jetez un oeil sur le module struct: http://docs.python.org/library /struct.html

Il pas clair ce que vous voulez faire:

  1. Faire quelque chose avec la forme sérialisée d'un message entier (A partir de la méthode SerializeAsString). Je ne sais pas ce que vous voulez faire avec ça?
  2. Enregistrer une chaîne d'octets dans un message protobuf - il suffit d'utiliser le type de bytes dans le fichier .proto, et une chaîne d'octets en python pour la variable
  3. .

Vous pouvez utiliser Pythons Cordes pour obtenir des tampons proto données sérialisés (peu importe la façon dont ils Ware crated - en Python, Java, C ++ ou toute autre langue).

C'est la ligne de la version Pythons de proto tampons tutoriel: address_book.ParseFromString(f.read())

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top