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.
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.
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.
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