#!/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)