Maison > développement back-end > Tutoriel Python > Comment rendre une classe Python JSON sérialisable ?

Comment rendre une classe Python JSON sérialisable ?

DDD
Libérer: 2024-12-19 18:09:08
original
155 Les gens l'ont consulté

How to Make a Python Class JSON Serializable?

Comment rendre une classe Python JSON sérialisable

La sérialisation est le processus de conversion d'un objet dans un format qui peut être stocké ou transmis. JSON (JavaScript Object Notation) est un format de données populaire utilisé pour transmettre des données entre applications.

Pour sérialiser une classe Python en JSON, vous devez implémenter le dict méthode spéciale. dict renvoie un dictionnaire qui contient les attributs de l'objet. Vous pouvez ensuite utiliser la fonction json.dumps() pour sérialiser le dictionnaire en JSON.

Par exemple :

class FileItem:
    def __init__(self, fname):
        self.fname = fname
Copier après la connexion

Pour sérialiser la classe FileItem en JSON, vous pouvez implémenter la méthode spéciale dict comme suit :

class FileItem:
    def __init__(self, fname):
        self.fname = fname

    def __dict__(self):
        return {'fname': self.fname}
Copier après la connexion

Vous pouvez ensuite utiliser la fonction json.dumps() pour sérialiser l'objet FileItem en JSON :

import json

x = FileItem('/foo/bar')
json_data = json.dumps(x, default=lambda o: o.__dict__)
Copier après la connexion

Le par défaut =lambda o: o.__dict__ l'argument est requis car le FileItem la classe n’est pas nativement sérialisable en JSON. Cet argument indique à la fonction json.dumps() d'appeler la méthode dict de l'objet avant de le sérialiser.

Les données JSON résultantes seront :

{"fname": "/foo/bar"}
Copier après la connexion

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!

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