Lesen Sie die Protokollpufferdaten mit Python3

Heute spreche ich über Python + -Protokollpuffer, die plötzlich meine Meinung von den üblichen Statistiken und dem maschinellen Lernen geändert haben.

Protokollpuffer ist ein praktisches Serialisierungsformat. Wenn Sie es in Python 3 verwenden möchten, müssen Sie zum Zeitpunkt des Schreibens den neuesten Code von GitHub verwenden.

Die Unterstützung für Python 2 hat bis 2020 zugenommen Die Nachrichten besagen, dass Sie das neue 2-System verwenden sollten, aber die neueste Technologie Als Ingenieur denke ich, dass es viele Fälle gibt, in denen der starke Wille besteht, niemals etwas anderes als die Python 3.x-Serie zu schreiben.

Umgebung

Klonen Sie als Umgebung Protokollpuffer von GitHub, erstellen Sie sie und richten Sie sie wie folgt mit Python ein.

git clone git://github.com/openx/python3-protobuf.git
cd python3-protobuf
./autogen.sh
./configure --prefix=$PREFIX #Geben Sie das Installationsziel von protobuf an
make
make check
sudo make install

cd python #Python-Bindung
python setup.py build
python setup.py test
sudo python setup.py install

Sie können jetzt Protokollpuffer von Python3 verwenden. Es ist einfach.

Definition und Konvertierung der Dateistruktur

Protokollpuffer definieren die Struktur in einer Datei mit dem Namen .proto. Es wird gesagt, dass der Schlüssel in JSON in einen numerischen Wert konvertiert wird und in einer kleineren Datengröße ausgetauscht werden kann.

protoc -I=. --python_out=. schema.prot

Eine Datei wie schemaXX.py wird generiert, sodass Sie sie aus dem gewünschten Skript importieren können.

Verwendung von Python

Dies ist das Bild, das die Daten tatsächlich liest.

import schema_pb2 #Importieren Sie die generierte Python-Datei
import base64
import json

event = schema_pb2.nb_event()
event.ParseFromString(base64.b64decode(value))
ts = event.timestamp

#Versuchen Sie, in JSON zu konvertieren
obj = {}
obj['event_type'] = event.type
obj['seq'] = event.seq
obj['timestamp'] = event.timestamp
obj['op'] = event.op

#Konvertieren Sie einmal im Wörterbuch gespeicherte Daten in JSON
json_dump = json.dumps(obj, ensure_ascii=False)
print(json_dump)

Recommended Posts

Lesen Sie die Protokollpufferdaten mit Python3
[Python] Daten lesen
Lesen Sie DXF mit Python
Lesen Sie Tabellendaten in einer PDF-Datei mit Python
Behandeln Sie Umgebungsdaten in Python
Verwenden Sie das Messprotokoll mit Python
Zeigen Sie UTM-30LX-Daten in Python an
Lesen Sie Eulers Formel in Python
Lesen Sie XML mit dem in Python angegebenen Namespace
Lesen Sie Outlook-E-Mails mit Python
Lesen Sie die Fortran-Ausgabe mit Python
Lesen von JSON-Daten mit Python
Deaktivieren Sie das python2.6 ssl3-Protokoll in centos6
Behandeln Sie Daten im NetCDF-Format mit Python
Lesen Sie PNG-Chunks in Python (Klassenausgabe)
Hashing von Daten in R und Python
Lesen Sie Dateien parallel zu Python
Erstellen und lesen Sie Messagepacks in Python
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Ali Buch in Python: Abschnitt 2-4, Datenstruktur
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Fügen Sie Protokollpuffer mit Python in SQLite ein
Holen Sie sich Google Fit API-Daten in Python
Python: Vorverarbeitung beim maschinellen Lernen: Datenerfassung
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
Lesen Sie die Datei Zeile für Zeile mit Python
Lesen Sie die Datei Zeile für Zeile mit Python
Lesen und schreiben Sie JSON-Dateien mit Python
Zeichnen Sie Daten einfach in Shell und Python
[TensorFlow] Python ⇔ Protokollpuffer ⇔ GPU / Distributed Computing
Python: Vorverarbeitung beim maschinellen Lernen: Datenkonvertierung
[Python] Lesen Sie die angegebene Zeile in der Datei
Lesen von Zeichen in Bildern mit Python OCR
Bücher über Datenwissenschaft, die 2020 gelesen werden sollen
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
Metaanalyse in Python
Unittest in Python
Datenanalyse Python
Epoche in Python
Zwietracht in Python
Pandas Daten lesen
gRPC-Methoden, die beim Umgang mit Protokollpuffern verwendet werden, geben Python CopyFrom, Extend ein
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
[SQL Alchemy] Daten lesen