Maison > développement back-end > Tutoriel Python > Comment sérialiser des objets ORM SQLAlchemy en JSON ?

Comment sérialiser des objets ORM SQLAlchemy en JSON ?

DDD
Libérer: 2024-12-01 05:59:13
original
188 Les gens l'ont consulté

How to Serialize SQLAlchemy ORM Objects to JSON?

Conversion des objets ORM SQLAlchemy en JSON

La sérialisation des résultats des requêtes SQLAlchemy au format JSON peut être une tâche courante lorsque vous travaillez avec des applications Web. Bien que Django fournisse une sérialisation automatisée, SQLAlchemy ne dispose pas de sérialiseur prêt à l'emploi.

Tentatives initiales et erreurs

Vous avez tenté d'utiliser jsonpickle.encode et json.dumps pour sérialiser Objets SQLAlchemy, mais a rencontré l'erreur suivante :

TypeError: <Product('3', 'some name', 'some desc')> is not JSON serializable
Copier après la connexion

Solution : personnalisation de l'objet Sérialisation

Pour surmonter le problème de sérialisation, vous pouvez créer une méthode de classe personnalisée qui convertit l'objet en dictionnaire :

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

Cette méthode as_dict() génère dynamiquement une représentation par dictionnaire de l'objet en itérant sur les colonnes de sa table. Vous pouvez ensuite utiliser User.as_dict() pour sérialiser l'objet et le transmettre au codage JSON.

Ressources supplémentaires

Pour plus d'informations sur la conversion d'objets SQLAlchemy en dictionnaires, veuillez vous référer aux ressources suivantes :

  • [Comment convertir un objet ligne SQLAlchemy en Python dict?](https://stackoverflow.com/questions/38425453/how-to-convert-sqlalchemy-row-object-to-a-python-dict) explique des approches alternatives pour générer des dictionnaires à partir d'objets SQLAlchemy.

Conclusion

En implémentant une méthode de sérialisation personnalisée, vous pouvez convertir avec succès les résultats de la requête SQLAlchemy au format JSON, permettant vous pouvez utiliser les données dans des grilles de données JavaScript comme JQGrid.

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