python 學習 -- json的序列化和反序列化

xiaopengyaonixi發表於2016-10-21
import json

class Student(object):
    def __init__(self,name,age,score):
        self.name = name
        self.age = age
        self.score = score

s = Student('Bob',20,88)

def studentparse(std):
    return {
        "name":std.name,
        "age":std.age,
        "score":std.score
    }

# 將物件轉化為json1
print(json.dumps(s,default=studentparse))

# 將物件轉化為json2
print(json.dumps(s,default=lambda obj:obj.__dict__))

# 定義反序列化的工具方法
def tranlate(d):
    return Student(d['name'],d['age'],d['score'])

# 定義一個json字串
json_str = '{"score": 88, "name": "Bob", "age": 20}'

# 將json轉化為物件
print(json.loads(json_str,object_hook=tranlate))


執行的結果:


相關文章