Das Serialisieren von SQLAlchemy-Abfrageergebnissen in das JSON-Format kann eine häufige Aufgabe bei der Arbeit mit Webanwendungen sein. Während Django eine automatisierte Serialisierung bereitstellt, verfügt SQLAlchemy nicht über einen sofort einsatzbereiten Serialisierer.
Sie haben versucht, jsonpickle.encode und json.dumps zur Serialisierung zu verwenden SQLAlchemy-Objekte, es ist jedoch der folgende Fehler aufgetreten:
TypeError: <Product('3', 'some name', 'some desc')> is not JSON serializable
Um das Serialisierungsproblem zu lösen, können Sie eine benutzerdefinierte Klassenmethode erstellen, die das Objekt in ein Wörterbuch umwandelt:
class User: def as_dict(self): return {c.name: getattr(self, c.name) for c in self.__table__.columns}
Diese as_dict()-Methode generiert dynamisch eine Wörterbuchdarstellung des Objekts durch Iteration über die Tabellenspalten. Anschließend können Sie User.as_dict() verwenden, um das Objekt zu serialisieren und an die JSON-Codierung zu übergeben.
Weitere Einblicke in die Konvertierung von SQLAlchemy-Objekten in Wörterbücher finden Sie in den folgenden Ressourcen :
Durch die Implementierung einer benutzerdefinierten Serialisierungsmethode können Sie SQLAlchemy-Abfrageergebnisse erfolgreich in JSON konvertieren Format, sodass Sie die Daten in JavaScript-Datengittern wie JQGrid verwenden können.
Das obige ist der detaillierte Inhalt vonWie serialisiere ich SQLAlchemy ORM-Objekte in JSON?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!