python 类对象转换json的三种方式

第一种

from datetime import datetime
import json
from typing import Any

class Student:
    def __init__(self,n,b):
        self.name=n
        self.bir=b

    def jsonformat(self):
        return {
            "name":self.name,
            "bir":str(self.bir)
        }
s=Student("章三",datetime.now())
j=json.dumps(s,ensure_ascii=False,default=s.jsonformat)
print(j)

第二种

s=Student("章三","2000-01-01")
s=json.dumps(s,ensure_ascii=False,default=lambda obj:obj.__dict__)
print(s)

第三种

class MyJsonEncoder(json.JSONEncoder):
    def default(self, o: Any) -> Any:
        if isinstance(o,Student):
            return {
            "name":o.name,
            "bir":str(o.bir)
        }
        return super().default(o)

s=json.dumps(Student("章三",datetime.now()),cls=MyJsonEncoder,ensure_ascii=False)
print(s)

版权声明:本文为xiaozhaozai原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。