dumps函数不仅可以将字典转换为JSON字符串,还可以将类实例转换为JSON字符串。dumps函数需要通过default关键字参数指定一个回调函数,在转换的过程中,dumps函数会向这个回调函数传入类实例(通过dumps函数第1个参数传入),而回调函数的任务是将传入的对象转换为字典,然后dumps函数再将由回调函数返回的字典转换为JSON字符串。也就是说,dumps函数的本质还是将字典转换为JSON字符串,只是如果将类实例也转换为JSON字符串,需要先将类实例转换为字典,然后再将字典转换为JSON字符串,而将类实例转换为字典的任务就是通过default关键字参数指定的回调函数完成的。
下面的例子会将Product类转换为JSON字符串,其中product2Dict函数的任务就是将Product类的实例转换为字典。
import json
class Product:
# 通过类的构造方法初始化3个属性
def __init__(self, name,price,count):
self.name = name
self.price = price
self.count = count
# 用于将Product类的实例转换为字典的函数
def product2Dict(obj):
return {
'name': obj.name,
