首頁 > 後端開發 > Python教學 > 如何讓我的 Python 類別 JSON 可序列化?

如何讓我的 Python 類別 JSON 可序列化?

Patricia Arquette
發布: 2024-12-21 14:38:15
原創
110 人瀏覽過

How Can I Make My Python Classes JSON Serializable?

使 Python 類別 JSON 可序列化

序列化允許將物件轉換為適合持久或傳輸的格式。在 JSON 中序列化自訂類別通常會導致 TypeError,因為它們的非 JSON 可序列化性質。

實作 toJSON() 方法

一種方法是建立一個類別的 toJSON() 方法,手動處理其序列化。這需要實作自訂 JSON 序列化函數並確保正確處理巢狀物件。

import json

class FileItem:
    def __init__(self, fname):
        self.fname = fname

    def toJSON(self):
        return json.dumps(self.__dict__)

x = FileItem('/foo/bar')
print(x.toJSON())  # Outputs: '{"fname": "/foo/bar"}'
登入後複製

使用orjson 庫

要獲得全面的解決方案,請考慮使用orjson庫,它提供了一種高效且可自訂的方法來將自訂類別序列化為JSON。它提供了高級功能,例如架構強制和對複雜物件結構的支援。

import orjson

@orjson.dataclass
class FileItem:
    fname: str

x = FileItem('/foo/bar')
json_bytes = orjson.dumps(x)  # Returns a byte string
print(json_bytes.decode())  # Outputs: '{"fname": "/foo/bar"}'
登入後複製

結論

使用自訂 toJSON() 方法或 orjson 函式庫提供了方便的解決方案用於將 Python 類別序列化為 JSON。這兩種方法都確保物件可以以 JSON 格式有效表示和傳輸。

以上是如何讓我的 Python 類別 JSON 可序列化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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