json.dumps(data) 报 TypeError: Object of type bytes is not JSON serializable
原因:json.dumps转json数据时,dict中包含了字节数据导致报错
解决方法:判断dict中数据是否为字节数据,是的话将其转换为str先
import json
# 第一步:添加下面类方法处理
class MyEncoder(json.JSONEncoder):
def default(self, obj):
"""
判断是否为bytes类型的数据是的话转换成str
:param obj:
:return:
"""
if isinstance(obj, bytes):
return str(obj, encoding='utf-8')
return json.JSONEncoder.default(self, obj)
# 第二步:json.dumps添加cls和index参数
# 原写法
json.dumps(data, ensure_ascii=False)
# 替换成
json.dumps(data, ensure_ascii=False, cls=MyEncoder, indent=4)