Aujourd'hui, je parle de Python + Protocol Buffers, qui a soudainement changé d'avis par rapport aux statistiques habituelles et à l'apprentissage automatique.
Protocol Buffers est un format de sérialisation pratique. Si vous souhaitez l'utiliser dans Python 3, vous devez utiliser le dernier code de GitHub au moment de l'écriture.
La prise en charge de Python 2 a augmenté jusqu'en 2020 Les nouvelles indiquent que vous devriez utiliser le nouveau système 2, mais la dernière technologie En tant qu'ingénieur à suivre, je pense qu'il existe de nombreux cas où il existe une forte volonté de ne jamais écrire autre chose que la série Python 3.x.
En tant qu'environnement, clonez des tampons de protocole à partir de GitHub, créez-le et configurez-le avec Python comme suit.
git clone git://github.com/openx/python3-protobuf.git
cd python3-protobuf
./autogen.sh
./configure --prefix=$PREFIX #Spécifiez la destination d'installation de protobuf
make
make check
sudo make install
cd python #Liaison Python
python setup.py build
python setup.py test
sudo python setup.py install
Vous pouvez désormais utiliser les tampons de protocole de Python3. C'est facile.
Protocol Buffers définit la structure dans un fichier nommé .proto. On dit que la clé en JSON est convertie en une valeur numérique et peut être échangée dans une taille de données plus petite.
protoc -I=. --python_out=. schema.prot
Un fichier tel que schemaXX.py sera généré, vous pouvez donc l'importer à partir du script que vous souhaitez utiliser.
C'est l'image qui lit réellement les données.
import schema_pb2 #Importez le fichier Python généré
import base64
import json
event = schema_pb2.nb_event()
event.ParseFromString(base64.b64decode(value))
ts = event.timestamp
#Essayez de convertir en JSON
obj = {}
obj['event_type'] = event.type
obj['seq'] = event.seq
obj['timestamp'] = event.timestamp
obj['op'] = event.op
#Convertir les données une fois stockées dans le dictionnaire en JSON
json_dump = json.dumps(obj, ensure_ascii=False)
print(json_dump)
Recommended Posts