首頁 > 後端開發 > Python教學 > 如何將 SQLAlchemy ORM 物件序列化為 JSON?

如何將 SQLAlchemy ORM 物件序列化為 JSON?

DDD
發布: 2024-12-01 05:59:13
原創
194 人瀏覽過

How to Serialize SQLAlchemy ORM Objects to JSON?

將 SQLAlchemy ORM 物件轉換為 JSON

將 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 行物件轉換為 Python dict?](https://stackoverflow.com/questions/38425453/how-to-convert-sqlalchemy-row-object-to-a-python-dict)解釋了從 SQLAlchemy 物件產生字典的替代方法。

結論

透過實作自訂序列化方法,可以成功將SQLAlchemy 查詢結果轉換為JSON 格式,讓您能夠使用JavaScript 資料網格(如JQGrid)中的資料。

以上是如何將 SQLAlchemy ORM 物件序列化為 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板