Bei unserer täglichen Verwendung von Python verwenden wir häufig das JSON-Format zum Speichern einiger Daten, insbesondere in der Webentwicklung. Die native JSON-Bibliothek von Python weist jedoch eine schlechte Leistung und wenige Funktionen auf und kann nur einfache und leichte Anforderungen an die Speicherung und Konvertierung von JSON-Daten erfüllen.
Die Drittanbieter-JSON-Bibliothek orjson, die ich Ihnen in diesem Artikel vorstellen möchte, wurde mehrfach bis zehnmal in verschiedenen öffentlichen Benchmarks getestet Leistungstests. Der Leistungsvorteil ist doppelt so hoch wie der von json, ujson, rapidjson, simplejson und anderen Python-Bibliotheken, und es gibt viele zusätzliche Funktionen. Werfen wir einen Blick auf die gängigen Methoden. 🎜🎜## 🎜🎜#orjson unterstützt alle Versionen von 64-Bit-Python von 3.7 bis 3.10. Die in diesem Artikel gezeigte orjson-Version ist 3.7.0. Sie können die Installation direkt mit pip install -U orjson abschließen. Lassen Sie uns die gängigen Methoden in orjson demonstrieren:
Ähnlich wie bei der nativen JSON-Bibliothek können wir orjson.dumps() verwenden, um Python-Objekte in JSON-Daten zu serialisieren. Beachten Sie, dass der kleine Unterschied darin besteht, dass das Ergebnis der Orjson-Serialisierung nicht vom Typ str, sondern vom Typ bytes ist. Im folgenden Beispiel serialisieren wir eine Liste mit 10 Millionen einfachen Wörterbuchelementen, orjson. Der zeitaufwändige Vergleich mit der JSON-Bibliothek ist wie folgt:
2. DeserialisierungJSON-Daten in Python-Objekte konvertieren Wir nennen den Prozess Deserialisierung und verwenden orjson.loads() zum Betrieb, der gängige Typen wie Bytes und Str akzeptiert. Basierend auf dem vorherigen Beispiel fügen wir ein Deserialisierungsbeispiel hinzu:
#3 In der Serialisierungsoperation von orjson können viele zusätzliche Funktionen über Parameteroptionen konfiguriert werden: #🎜 🎜#(1) OPT_INDENT_2
Durch die Konfiguration von option=orjson.OPT_INDENT_2 können wir dem serialisierten JSON-Ergebnis einen Einrückungsverschönerungseffekt von 2 Leerzeichen hinzufügen und so das Fehlen von Parametern ausgleichen:# 🎜🎜#
(2) OPT_OMIT_MICROSECONDSorjson.dumps() kann Datum, Uhrzeit usw. direkt in Python ausgeben. Das Datums- und Uhrzeitobjekt in der Standardbibliothek wird in die entsprechende Zeichenfolge konvertiert , was mit der nativen JSON-Bibliothek nicht möglich ist, kann der Millisekundenteil des Suffixes des Konvertierungsergebnisses weggelassen werden:#🎜 🎜#
# 🎜🎜#(3) OPT_NON_STR_KEYS
Wenn das zu serialisierende Objekt einen nicht numerischen Schlüssel hat, löst orjson standardmäßig einen TypeError aus. In diesem Fall müssen Sie Option=orjson.OPT_NON_STR_KEYS konfigurieren, um es zu erzwingen Konvertierung dieser Schlüssel in den Zeichentyp:(4) OPT_SERIALIZE_NUMPY
orjson Ein wichtiges Merkmal ist, dass es komplexe konvertieren kann Objekte, die Datenstrukturobjekte in Numpy enthalten, in Arrays in JSON mit Kompatibilität, nur mit option=orjson.OPT_SERIALIZE_NUMPY:Zusätzlich zur automatischen Serialisierung von Numpy-Objekten unterstützt orjson auch die Konvertierung von UUID-Objekten. In Versionen vor orjson 3.0 ist option=orjson erforderlich, und die in diesem Artikel gezeigte 3.X-Version erfordert keine zusätzliche Konfiguration Parameter:
(6) OPT_SORT_KEYS
Pass Mit dem Parameter option=orjson.OPT_SORT_KEYS können die Ergebnisse automatisch serialisiert werden sortiert nach Schlüssel:
(7) Kombinieren mehrerer Optionen#🎜 🎜#
Wenn Ihr Serialisierungsvorgang mehrere Optionsfunktionen umfassen muss, können Sie kann den Operator | verwenden, um mehrere Optionsparameter zu kombinieren:Wenn das zu serialisierende Objekt eine benutzerdefinierte Datenstruktur der Datenklasse umfasst, können Sie mit orjson.OPT_PASSTHROUGH_DATACLASS zusammenarbeiten und dann die benutzerdefinierte Verarbeitung durch Übergabe der Standardparameterfunktion übergeben Um eine freiere Datenkonvertierungslogik zu erreichen, können wir beispielsweise im folgenden einfachen Beispiel diese Funktion verwenden, um die Originaldaten zu desensibilisieren: So implementieren Sie die Konvertierung eines benutzerdefinierten Datumsformats:
orjson Weitere Funktionen finden Sie im offiziellen Lager https://github.com/ijl/orjson, um mehr zu erfahren.
Das obige ist der detaillierte Inhalt vonEs lohnt sich, JSON-Bibliotheken von Drittanbietern in Python zu lernen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!