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

Comment rendre une classe Python JSON sérialisable ?

DDD
DDDoriginal
2024-12-19 18:09:08157parcourir

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

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}

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__)

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"}

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:
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