使 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 格式有效表示和傳輸。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3