Maison > développement back-end > Tutoriel Python > Bibliothèques JSON tierces qui valent la peine d'être apprises en Python

Bibliothèques JSON tierces qui valent la peine d'être apprises en Python

PHPz
Libérer: 2023-04-11 20:49:07
avant
2154 Les gens l'ont consulté

Dans notre utilisation quotidienne de Python, nous utilisons souvent le format json pour stocker certaines données, notamment dans le développement web. Cependant, la bibliothèque json native de Python a des performances médiocres et peu de fonctions, et ne peut répondre qu'aux besoins simples et légers de stockage et de conversion de données json.

Bibliothèques JSON tierces qui valent la peine dêtre apprises en Python

La bibliothèque json tierce orjson que je souhaite vous présenter dans cet article a écrasé json, ujson, rapidjson, simplejson et d'autres dans divers tests de performances de référence publics avec un avantage de performances de plusieurs fois à des dizaines de fois. .Python et possède de nombreuses fonctions supplémentaires. Jetons un coup d'œil à ses méthodes communes~

Méthodes communes d'orjson

orjson prend en charge toutes les versions de Python 64 bits de 3.7 à 3.10. La version d'orjson correspondante présentée dans cet article est la 3.7. 0. Utilisez simplement pip install -U orjson pour terminer l'installation. Montrons les méthodes courantes dans orjson :

1. Sérialisation

Semblable à la bibliothèque json native, nous pouvons utiliser orjson.dumps() pour sérialiser des objets Python en données JSON. Notez que la légère différence est le résultat de la sérialisation orjson. n'est pas de type str mais de type bytes. Dans l'exemple suivant, nous sérialisons une liste contenant 10 millions d'éléments de dictionnaire simples. La comparaison fastidieuse entre les bibliothèques orjson et json est la suivante :

Bibliothèques JSON tierces qui valent la peine dêtre apprises en Python

2. La conversion des données JSON en objets Python est appelée désérialisation. Elle est opérée à l'aide de orjson.loads(), qui accepte les types courants tels que bytes et str. Sur la base de l'exemple précédent, prenons un exemple d'ajout de désérialisation :

Bibliothèques JSON tierces qui valent la peine dêtre apprises en Python3. . Options d'options riches

Dans l'opération de sérialisation d'orjson, vous pouvez configurer de nombreuses fonctions supplémentaires via l'option de paramètre Les plus couramment utilisées sont :

(1) OPT_INDENT_2

En configurant option=orjson.OPT_INDENT_2, nous pouvons ajouter un 2. -effet d'embellissement de l'indentation de l'espace sur le résultat JSON sérialisé, compensant ainsi le manque d'indentation des paramètres :

Bibliothèques JSON tierces qui valent la peine dêtre apprises en Python(2) OPT_OMIT_MICROSECONDS

orjson .dumps() peut convertir directement les objets date et heure dans les bibliothèques standard telles que datetime et l'heure en Python dans les chaînes correspondantes. C'est quelque chose que la bibliothèque json native ne peut pas faire. En configurant option=orjson.OPT_OMIT_MICROSECONDS, les résultats de la conversion peuvent être omis. ) OPT_NON_STR_KEYS

Lorsque l'objet qui doit être sérialisé a une clé non numérique, orjson générera une erreur TypeError par défaut. Dans ce cas, option=orjson.OPT_NON_STR_KEYS doit être configuré pour forcer la conversion de ces clés en type de caractère :

Bibliothèques JSON tierces qui valent la peine dêtre apprises en Python

(4) OPT_SERIALIZE_NUMPY

Une caractéristique importante d'orjson est qu'il peut convertir en compatibilité des objets complexes contenant des objets de structure de données dans numpy en tableaux en JSON, avec option=orjson.OPT_SERIALIZE_NUMPY suffit :

Bibliothèques JSON tierces qui valent la peine dêtre apprises en Python

( 5) OPT_SERIALIZE_UUID

En plus de sérialiser automatiquement les objets numpy, orjson prend également en charge la conversion des objets UUID. Dans les versions antérieures à orjson 3.0, vous devez coopérer avec option=orjson .OPT_SERIALIZE_UUID, alors que la version 3.X présentée dans cet article nécessite. aucun paramètre de configuration supplémentaire :

Bibliothèques JSON tierces qui valent la peine dêtre apprises en Python

(6) OPT_SORT_KEYS

En faisant correspondre le paramètre option=orjson.OPT_SORT_KEYS, les résultats sérialisés peuvent être automatiquement triés par clé :

Bibliothèques JSON tierces qui valent la peine dêtre apprises en Python

(7) Combinaison de plusieurs options

Quand votre opération de sérialisation doit impliquer plusieurs fonctions d'option, vous pouvez utiliser l'opérateur | pour combiner plusieurs paramètres d'option :

Bibliothèques JSON tierces qui valent la peine dêtre apprises en Python

4. Ajoutez des stratégies de traitement personnalisées pour dataclass et datetime

Lorsque l'objet que vous devez sérialiser implique une structure de données personnalisée de classe de données, vous pouvez coopérer avec orjson.OPT_PASSTHROUGH_DATACLASS, puis transmettre le traitement personnalisé en passant la fonction de paramètre par défaut. pour obtenir une logique de conversion de données plus gratuite. Par exemple, dans l'exemple simple ci-dessous, nous pouvons utiliser cette fonctionnalité pour désensibiliser les données d'origine :

Bibliothèques JSON tierces qui valent la peine dêtre apprises en Python

De même, pour les données de type datetime, nous pouvons également coopérer avec OPT_PASSTHROUGH_DATETIME et la fonction par défaut personnalisée. pour implémenter la conversion de format personnalisé de date :

Bibliothèques JSON tierces qui valent la peine dêtre apprises en Python

orjson Pour plus de fonctionnalités, veuillez vous rendre sur l'entrepôt officiel https://github.com/ijl/orjson pour en savoir plus.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal