Usando Python, como faço para obter uma serialização binária da mensagem meu Google protobuf?
-
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.
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:
- 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?
- 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())