Usando Python, como faço para obter uma serialização binária da mensagem meu Google protobuf?

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

  •  13-09-2019
  •  | 
  •  

Pergunta

Eu vejo o SerializeAsString função no protobuf documentação Python , mas como isso sugere, isso me dá uma versão de seqüência dos dados binários. Existe uma maneira de serialização e analisar um conjunto de dados binário protobuf usando Python?

Temos um aplicativo C ++ que armazena as mensagens protobuf como dados binários em um arquivo. Nós gostaríamos de ler e escrever para o arquivo usando Python.

Foi útil?

Solução

cordas Python pode conter dados binários, retornos, portanto, SerializeAsString dados binário.

Outras dicas

Eu acho que as cordas são a maneira usual para representar dados binários em Python. O que você exatamente quer fazer?

[Edit]

Tenha um olhar para o módulo struct: http://docs.python.org/library /struct.html

Não claro o que você quer fazer:

  1. fazer algo com a forma serializada de uma mensagem inteira (a partir do método SerializeAsString). Não sei o que você quer fazer com isso?
  2. Guarde uma cadeia de bytes dentro de uma mensagem de protobuf -. Usar apenas o tipo bytes no arquivo .proto, e uma cadeia de bytes em python para a variável

Você pode usar Pythons Cordas para obter buffers proto dados serializados (não importa se como eles utilidades domésticas engaiolados - em Python, Java, C ++ ou qualquer outra língua).

Estas é a linha da versão Pythons de buffers proto tutorial: address_book.ParseFromString(f.read())

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top