python 將類對象轉換成json

若是將字典轉換成json,想必都很熟悉了,若是在進階點,將class類轉換成json對象該如何操做了?python

 

1,先定義一個類json

#定義一個Student類
class Student(object):
    def __init__(self,name,age,score):
        self.name = name
        self.age = age
        self.score = score

 

2,在實例化Student類,傳入3個參數ide

#實例化這個對象
s = Student('hello',20,80)

 

3,利用json轉換s實例化對象,看看是否成功函數

print(json.dumps(s))

 

4,輸出:直接報出TypeError類型錯誤,不容許直接將類轉換成jsonspa

  File "C:\Python27\lib\json\encoder.py", line 184, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <__main__.Student object at 0x00000000031239B0> is not JSON serializable

Process finished with exit code 1

 

解決方案:code

1,定義一個轉換函數對象

#定義一個轉換函數,將Student類換成json能夠接受的類型
def student2dict(std):
    return {
        'name':std.name,
        'age':std.age,
        'score':std.score
    }

 

2,在用json打印出來blog

#這樣就能夠將類對象轉換成json了,這裏利用json的default屬性來調用student2dict函數
print(json.dumps(s,default=student2dict))

 

3,查看輸出,這樣就能正確的將類對象經過json傳輸了it

C:\Python27\python.exe E:/python/testspider/fibon.py
{"age": 20, "score": 80, "name": "hello"}
相關文章
相關標籤/搜索