Al utilizar Python, ¿cómo consigo una serialización binaria de mi mensaje protobuf Google?
-
13-09-2019 - |
Pregunta
I ver la SerializeAsString función en el protobuf documentación de Python , pero como esto sugiere, esto me da una versión de cadena de los datos binarios. ¿Hay una manera de serializar y analizar una matriz binaria de los datos protobuf utilizando Python?
Tenemos una aplicación de C ++ que almacena los mensajes protobuf como datos binarios en un archivo. Nos gustaría leer y escribir en el fichero usando Python.
Solución
cadenas de Python pueden contener datos binarios, por lo tanto, SerializeAsString
devuelve los datos binarios.
Otros consejos
Creo que las cadenas son la forma habitual de representar datos binarios en Python. ¿Qué exactamente quiere hacer?
[Editar]
Tenga una mirada en el módulo de estructura: http://docs.python.org/library /struct.html
No está claro lo que quiere hacer:
- Hacer algo con la forma serializada de un mensaje completo (A partir del método SerializeAsString). No está seguro de lo que se quiere hacer con esto?
- almacenar una cadena de bytes dentro de un mensaje protobuf - sólo tiene que utilizar el tipo
bytes
en el archivo .proto, y una cadena de bytes en Python para la variable .
Puede utilizar pitones Cuerdas para conseguir tampones proto datos serializados (no importa la forma en que mercancías de los enjaulados - en Python, Java, C ++ o cualquier otro idioma).
Estos es la línea de pitones versión de proto amortigua tutorial:
address_book.ParseFromString(f.read())