Maison développement back-end Tutoriel Python Quelle est la différence entre json et pickle en Python ?

Quelle est la différence entre json et pickle en Python ?

Oct 24, 2023 am 09:40 AM
La différence entre json et cornichon en python Différences et connexions entre json et pickle Comparaison de json et pickle dans la programmation python

Quelle est la différence entre json et pickle en Python ?

Quelle est la différence entre json et pickle en Python ?

En Python, nous avons souvent besoin de sauvegarder les données des programmes dans des fichiers ou de lire des fichiers. JSON et pickle sont deux méthodes de sérialisation et de désérialisation de données couramment utilisées. Ils peuvent tous convertir les structures de données Python en chaînes ou flux d'octets pour faciliter le stockage ou la transmission, et peuvent également restaurer les chaînes ou les flux d'octets dans les structures de données Python d'origine. Cependant, il existe quelques différences entre JSON et pickle, qui sont détaillées ci-dessous.

Tout d'abord, JSON est un format d'échange de données léger avec une forte lisibilité et une bonne compatibilité multilingue. Lorsque vous utilisez JSON pour la sérialisation des données, la structure des données de Python sera convertie en une forme de chaîne pouvant être analysée par d'autres langages de programmation, appelée chaîne JSON. Pickle est la méthode de sérialisation unique de Python, qui peut directement convertir les objets Python en flux d'octets au lieu de sous forme de chaîne.

Deuxièmement, les types de données pris en charge par JSON sont relativement simples, notamment les chaînes, les nombres, les valeurs booléennes, les listes, les dictionnaires et Aucun. Et pickle peut sérialiser presque n'importe quel objet Python, y compris les classes et fonctions personnalisées, même les méthodes d'instance et les fermetures. En effet, pickle utilise le protocole spécifique de Python pour sérialiser les objets, de sorte que seul Python peut désérialiser les données au format pickle.

Jetons un coup d'œil à un exemple de code spécifique :

import json
import pickle

# 定义一个Python字典
data = {'name': 'Tom', 'age': 25, 'gender': 'male'}

# 使用JSON进行序列化
json_str = json.dumps(data)
print('JSON字符串:', json_str)

# 使用pickle进行序列化
pickle_data = pickle.dumps(data)
print('Pickle字节流:', pickle_data)

# 使用JSON进行反序列化
json_data = json.loads(json_str)
print('JSON反序列化:', json_data)

# 使用pickle进行反序列化
unpickle_data = pickle.loads(pickle_data)
print('Pickle反序列化:', unpickle_data)

Les résultats d'exécution sont les suivants :

JSON字符串: {"name": "Tom", "age": 25, "gender": "male"}

JSON反序列化: {'name': 'Tom', 'age': 25, 'gender': 'male'}
Pickle反序列化: {'name': 'Tom', 'age': 25, 'gender': 'male'}

Comme le montre l'exemple de code, après avoir utilisé JSON pour la sérialisation, le résultat est une donnée JSON sous la forme de une chaîne, tout en utilisant pickle pour la sérialisation. Ce qui est obtenu après la sérialisation est un flux d'octets. Lors de la désérialisation, JSON peut convertir directement la chaîne JSON en un dictionnaire Python, tandis que pickle peut directement restaurer le flux d'octets dans la structure de données d'origine de Python.

Pour résumer, il existe quelques différences entre JSON et pickle en termes de méthodes de sérialisation et de désérialisation des données, de prise en charge des types de données et de compatibilité multilingue. Nous pouvons choisir la méthode appropriée pour sauvegarder et transmettre les données en fonction des besoins réels.

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!

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Stratégie de fusion efficace de l'adaptateur et du modèle de base PEFT LORA Stratégie de fusion efficace de l'adaptateur et du modèle de base PEFT LORA Sep 19, 2025 pm 05:12 PM

Ce tutoriel détaille comment fusionner efficacement l'adaptateur PEFT LORA avec le modèle de base pour générer un modèle complètement indépendant. L'article souligne qu'il est faux d'utiliser directement Transformers.Automodel pour charger l'adaptateur et fusionner manuellement les poids, et fournit le processus correct pour utiliser la méthode Merge_and_unload dans la bibliothèque PEFT. De plus, le tutoriel souligne également l'importance de traiter les segments de mots et discute des problèmes et des solutions de compatibilité des versions de PEFT.

Comment installer des packages à partir d'un fichier exigence.txt dans Python Comment installer des packages à partir d'un fichier exigence.txt dans Python Sep 18, 2025 am 04:24 AM

Exécutez pipinstall-rrequirements.txt pour installer le package de dépendance. Il est recommandé de créer et d'activer l'environnement virtuel d'abord pour éviter les conflits, s'assurer que le chemin du fichier est correct et que le PIP a été mis à jour et utiliser des options telles que --No-Deps ou --User pour ajuster le comportement d'installation si nécessaire.

Comment tester le code Python avec Pytest Comment tester le code Python avec Pytest Sep 20, 2025 am 12:35 AM

Python est un outil de test simple et puissant dans Python. Après l'installation, les fichiers de test sont automatiquement découverts en fonction des règles de dénomination. Écrivez une fonction commençant par test_ pour les tests d'assurance, utilisez @ pytest.fixture pour créer des données de test réutilisables, vérifiez les exceptions via PyTest.Rais, prend en charge l'exécution de tests spécifiés et plusieurs options de ligne de commande et améliore l'efficacité des tests.

Comment gérer les arguments de ligne de commande dans Python Comment gérer les arguments de ligne de commande dans Python Sep 21, 2025 am 03:49 AM

TheargParsemoduleisthereComMendwaytoHandleCommand-lineargumentsInpython, fournissantRobustParsing, Typevalidation, HelpMessages, AnderrorHling; usys.argvforsimplécasesrequiringminimalsepup.

Problème de précision du nombre de points flottants dans Python et son schéma de calcul de haute précision Problème de précision du nombre de points flottants dans Python et son schéma de calcul de haute précision Sep 19, 2025 pm 05:57 PM

Cet article vise à explorer le problème commun de la précision de calcul insuffisante des nombres de points flottants dans Python et Numpy, et explique que sa cause profonde réside dans la limitation de représentation des nombres de points flottants 64 bits standard. Pour les scénarios informatiques qui nécessitent une précision plus élevée, l'article introduira et comparera les méthodes d'utilisation, les fonctionnalités et les scénarios applicables de bibliothèques mathématiques de haute précision telles que MPMATH, SYMPY et GMPY pour aider les lecteurs à choisir les bons outils pour résoudre les besoins de précision complexe.

Comment fusionner correctement l'adaptateur PEFT LORA avec modèle de base Comment fusionner correctement l'adaptateur PEFT LORA avec modèle de base Sep 17, 2025 pm 02:51 PM

Cet article détaille comment utiliser la fonction Merge_and_Unload de la bibliothèque PEFT pour fusionner efficacement et avec précision l'adaptateur LORA dans le modèle de base de base, créant ainsi un tout nouveau modèle avec des connaissances affineuses intégrées. L'article corrige les malentendus courants sur le chargement des adaptateurs et la fusion manuelle des poids des modèles via Transformers.

Comment pouvez-vous créer un gestionnaire de contexte en utilisant le décorateur @contextManager dans Python? Comment pouvez-vous créer un gestionnaire de contexte en utilisant le décorateur @contextManager dans Python? Sep 20, 2025 am 04:50 AM

Importer @ contextManagerfromContextLibandDeFineAgeneratorFonctionnement toTyieldSexactlyOnce, où les actes de championnalsAnterAndCodeLifteryiel

Comment travailler avec les fichiers PDF dans Python Comment travailler avec les fichiers PDF dans Python Sep 20, 2025 am 04:44 AM

PYPDF2, PDFPLUMBER et FPDF sont les bibliothèques de base pour Python pour traiter PDF. Utilisez le PYPDF2 pour effectuer l'extraction de texte, la fusion, la division et le chiffrement, tels que la lecture de la page via Pdfreader et l'appel extract_text () pour obtenir du contenu; PDFPLUMBER convient plus pour conserver l'extraction de texte de mise en page et la reconnaissance de la table, et prend en charge extract_tables () pour capturer avec précision les données de table; FPDF (FPDF2 recommandé) est utilisé pour générer du PDF, et les documents sont construits et sorties via add_page (), set_font () et cellule (). Lors de la fusion des PDF

See all articles