將 SQLAlchemy 查詢結果序列化為 JSON 格式可能是使用 Web 應用程式時的一項常見任務。雖然 Django 提供自動序列化,但 SQLAlchemy 沒有開箱即用的序列化程式。
您已嘗試使用 jsonpickle.encode 和 json.dumps 進行序列化SQLAlchemy對象,但遇到以下錯誤:
TypeError: <Product('3', 'some name', 'some desc')> is not JSON serializable
要克服序列化問題,您可以建立自訂類別方法,將物件轉換為字典:
class User: def as_dict(self): return {c.name: getattr(self, c.name) for c in self.__table__.columns}
這個as_dict() 方法動態產生物件的字典表示透過迭代其表格列。然後,您可以使用 User.as_dict() 序列化物件並將其傳遞給 JSON 編碼。
有關將 SQLAlchemy 物件轉換為字典的更多見解,請參閱以下資源:
透過實作自訂序列化方法,可以成功將SQLAlchemy 查詢結果轉換為JSON 格式,讓您能夠使用JavaScript 資料網格(如JQGrid)中的資料。
以上是如何將 SQLAlchemy ORM 物件序列化為 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!