Utilizzando Python, come faccio a ottenere una serializzazione binaria del mio messaggio protobuf Google?

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

  •  13-09-2019
  •  | 
  •  

Domanda

Vedo la funzione SerializeAsString nel protobuf documentazione Python , ma come questo suggerisce, questo mi dà una versione stringa di dati binari. Esiste un modo di serializzazione e l'analisi di una matrice binaria dei dati protobuf utilizzando Python?

Abbiamo un'applicazione C ++ che memorizza i messaggi protobuf come dati binari in un file. Vorremmo leggere e scrivere il file utilizzando Python.

È stato utile?

Soluzione

stringhe Python possono contenere dati binari, quindi SerializeAsString restituisce i dati binari.

Altri suggerimenti

Credo che le stringhe sono il solito modo di rappresentare i dati binari in Python. Che cosa esattamente vuoi fare?

[Modifica]

Date un'occhiata al modulo struct: http://docs.python.org/library /struct.html

Non è chiaro che cosa si vuole fare:

  1. Fare qualcosa con la forma serializzata di un intero messaggio (Dal metodo SerializeAsString). Non sei sicuro di quello che ci si vuole fare con questo?
  2. Conservare una stringa di byte all'interno di un messaggio protobuf - basta utilizzare il tipo di bytes nel file Proto, e una stringa di byte in python per la variabile
  3. .

È possibile utilizzare Pythons Corde per ottenere i buffer proto dati serializzati (non importa il modo in cui ware ingabbiati - in Python, Java, C ++ o qualsiasi altra lingua).

Queste è la linea da Pythons versione del proto buffer tutorial: address_book.ParseFromString(f.read())

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top