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.
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
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}
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.
Pour plus d'informations sur la conversion d'objets SQLAlchemy en dictionnaires, veuillez vous référer aux ressources suivantes :
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!