Maison > développement back-end > Tutoriel Python > Comment convertir efficacement les résultats d'une requête SQLAlchemy en JSON ?

Comment convertir efficacement les résultats d'une requête SQLAlchemy en JSON ?

Barbara Streisand
Libérer: 2024-11-30 19:40:14
original
1021 Les gens l'ont consulté

How to Efficiently Convert SQLAlchemy Query Results to JSON?

Convertir le résultat de la requête SQLAlchemy en JSON

La sérialisation des résultats de la requête SQLAlchemy en JSON peut être un défi, surtout sans sérialisation automatique comme dans les modèles Django ORM . Pour surmonter ce problème, vous pouvez créer un sérialiseur JSON personnalisé ou utiliser une bibliothèque existante.

Une approche consiste à définir manuellement le processus de sérialisation en créant une méthode to_dict() dans la classe de modèle :

class User:
    def to_dict(self):
        return {c.name: getattr(self, c.name) for c in self.__table__.columns}
Copier après la connexion

Cette fonction convertit l'instance de modèle en dictionnaire, qui peut ensuite être facilement converti en JSON.

Une autre option consiste à exploiter une bibliothèque de sérialisation d'objets comme jsonpickle. Cependant, il est important de noter que jsonpickle.encode() code l'objet requête lui-même. Utilisez plutôt jsonpickle.encode(item.to_dict()) après avoir converti le modèle en dictionnaire.

De plus, l'utilisation de json.dumps(items) entraînera une TypeError car les objets SQLAlchemy ne sont pas nativement sérialisables JSON. La méthode to_dict() garantit que les objets sont convertis dans un format de dictionnaire adapté à la sérialisation JSON.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal