首頁 > 後端開發 > Python教學 > 如何將自訂 Python 類別序列化為 JSON?

如何將自訂 Python 類別序列化為 JSON?

Barbara Streisand
發布: 2024-12-27 04:20:21
原創
716 人瀏覽過

How Can I Serialize Custom Python Classes to JSON?

將自訂 Python 類別序列化為 JSON

問題

Python 類別本身無法序列化為 JSON。考慮以下類別:

class FileItem:
    def __init__(self, fname):
        self.fname = fname
登入後複製

該類別無法直接序列化為JSON:

>>> import json
>>> x = FileItem('/foo/bar')
>>> json.dumps(x)
TypeError: Object of type 'FileItem' is not JSON serializable
登入後複製

要解決此問題,一種方法是實現序列化方法:

toJSON()方法

import json

class Object:
    def toJSON(self):
        return json.dumps(
            self,
            default=lambda o: o.__dict__, 
            sort_keys=True,
            indent=4)
登入後複製

使用此方法,您可以序列化類別:

me = Object()
me.name = "Onur"
me.age = 35
me.dog = Object()
me.dog.name = "Apollo"

print(me.toJSON())
登入後複製

這將輸出以下JSON:

{
    "age": 35,
    "dog": {
        "name": "Apollo"
    },
    "name": "Onur"
}
登入後複製

附加庫

要獲得更全面的解決方案,您可以使用orjson 庫。

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

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