#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json d = dict(name="Bob", age=20, score=88) data = json.dumps(d) print("JSON Data is a str:", data) reborn = json.loads(data) print(reborn) class Student(object): def __init__(self, name, age, score): self.name = name self.age = age self.score = score def __str__(self): return "Student object (%s, %s, %s)" % (self.name, self.age, self.score) s = Student("Bob", 20, 88) std_data = json.dumps(s, default=lambda obj: obj.__dict__) print("Dump Student:", std_data) rebuild = json.loads(std_data, object_hook=lambda d: Student(d["name"], d["age"], d["score"])) print(rebuild)