Comment sérialiser et désérialiser des objets à l'aide de pickle et JSON en Python

WBOY
Libérer: 2023-10-16 09:22:50
original
1776 Les gens l'ont consulté

Comment sérialiser et désérialiser des objets à laide de pickle et JSON en Python

Comment utiliser pickle et JSON en Python pour la sérialisation et la désérialisation d'objets

Python est un langage de programmation simple mais puissant qui est livré avec de nombreuses bibliothèques et modules utiles intégrés, permettant aux développeurs d'effectuer rapidement divers types de tâches. . Parmi eux, pickle et JSON sont deux modules couramment utilisés pour la sérialisation et la désérialisation d'objets. Cet article expliquera comment utiliser ces deux modules pour sérialiser et désérialiser des objets, et fournira des exemples de code détaillés.

  1. Utilisez pickle pour la sérialisation et la désérialisation d'objets

pickle est un module en Python grâce auquel les objets peuvent être convertis en données binaires pour le stockage ou la transmission, et les données binaires peuvent également être restaurées dans l'objet d'origine.

Tout d'abord, nous devons importer le module pickle :

import pickle
Copier après la connexion

Ensuite, nous pouvons utiliser la fonction dumps du module pickle pour sérialiser l'objet en données binaires :

data = {'name':'Tom', 'age': 25, 'city': 'New York'}
serialized_data = pickle.dumps(data)
Copier après la connexion

Après avoir utilisé la fonction dumps, la variable serialized_data enregistrera le données binaires sérialisées. Au contraire, nous pouvons utiliser la fonction loads pour restaurer les données binaires dans l'objet d'origine :

deserialized_data = pickle.loads(serialized_data)
print(deserialized_data)
Copier après la connexion

A ce moment, la variable deserialized_data sauvegardera l'objet d'origine restauré.

Voici un exemple complet montrant comment sérialiser et désérialiser un objet Person personnalisé :

import pickle

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 序列化对象
person = Person('Tom', 25)
serialized_person = pickle.dumps(person)

# 反序列化对象
deserialized_person = pickle.loads(serialized_person)
print(deserialized_person.name)
print(deserialized_person.age)
Copier après la connexion
  1. Utiliser JSON pour la sérialisation et la désérialisation d'objets

JSON est un format d'échange de données Level léger, facile à lire et à écrire. Python fournit le module json, qui peut facilement sérialiser et désérialiser les objets JSON.

Tout d'abord, nous devons importer le module json :

import json
Copier après la connexion

Ensuite, nous pouvons utiliser la fonction dumps du module json pour sérialiser l'objet dans une chaîne JSON :

data = {'name':'Tom', 'age': 25, 'city': 'New York'}
serialized_data = json.dumps(data)
Copier après la connexion

Après avoir utilisé la fonction dumps, la variable serialized_data sera enregistrée la chaîne JSON sérialisée. Au contraire, nous pouvons utiliser la fonction loads pour restaurer la chaîne JSON dans l'objet d'origine :

deserialized_data = json.loads(serialized_data)
print(deserialized_data)
Copier après la connexion

A ce moment, la variable deserialized_data sauvegardera l'objet d'origine restauré.

De même, voici un exemple complet montrant comment sérialiser et désérialiser un objet Person personnalisé :

import json

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 序列化对象
person = Person('Tom', 25)
serialized_person = json.dumps(person.__dict__)

# 反序列化对象
deserialized_person = json.loads(serialized_person)
print(deserialized_person['name'])
print(deserialized_person['age'])
Copier après la connexion

Résumé :

Avec les modules pickle et JSON, nous pouvons facilement effectuer la sérialisation et la désérialisation d'objets. Utilisez Pickle pour convertir des objets en données binaires, qui peuvent être utilisées pour le stockage de fichiers et la transmission réseau ; et JSON, en tant que format d'échange de données universel, peut facilement échanger des données avec d'autres langages. Selon les scénarios d'utilisation et les besoins spécifiques, nous pouvons choisir le module approprié pour effectuer les opérations de sérialisation et de désérialisation d'objets.

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:php.cn
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