Lire les données des tampons de protocole avec Python3

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.

Environnement

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.

Définition et conversion de la structure des fichiers

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.

Utilisation depuis Python

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

Lire les données des tampons de protocole avec Python3
[python] Lecture de données
Lire DXF avec python
Lire les données de la table dans un fichier PDF avec Python
Gérer les données ambiantes en Python
Utiliser le protocole de mesure avec Python
Afficher les données UTM-30LX en Python
Lire la formule d'Euler en Python
Lire du XML avec un espace de noms spécifié en Python
Lire les e-mails Outlook avec Python
Lire la sortie Fortran avec python
Lire des données json avec python
Obtenir des données de Quandl en Python
Désactiver le protocole python2.6 ssl3 sur centos6
Gérez les données au format NetCDF avec Python
Lire des morceaux PNG en Python (édition de classe)
Hashing de données en R et Python
Lire des fichiers en parallèle avec Python
Créer et lire des paquets de messages en Python
Obtenez des données supplémentaires vers LDAP avec python
Livre Ali en python: Sec.2-4, structure de données
Essayez de travailler avec des données binaires en Python
Mettez des tampons de protocole dans sqlite avec python
Obtenez les données de l'API Google Fit en Python
Python: prétraitement en machine learning: acquisition de données
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
Lisez le fichier ligne par ligne avec Python
Lisez le fichier ligne par ligne avec Python
Lire et écrire des fichiers JSON avec Python
Représentez facilement des données graphiques dans le shell et Python
[TensorFlow] Python ⇔ Tampons de protocole ⇔ GPU / Calcul distribué
Python: prétraitement dans l'apprentissage automatique: conversion de données
[Python] Lire la ligne spécifiée dans le fichier
Lire des caractères dans des images avec Python OCR
Livres sur la science des données à lire en 2020
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
Méta-analyse en Python
Unittest en Python
Analyse de données python
Époque en Python
Discord en Python
lecture de données pandas
Méthodes gRPC utilisées lors du traitement du type de tampons de protocole dans Python CopyFrom, Extend
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
[SQL Alchemy] Lire les données