记录一次使用json.dumps出现了错误TypeError: Object of type UndefinedTable is not JSON serializable

网上查了很多原因,而这个问题是因为使用json.dumps()函数时,dumps是将dict数据转化为str数据,但是dict数据中包含byte数据所以会报错
处理方法主要就下面这几种:
1.编写一个类

# -*- coding:utf-8 -*-
# !/usr/bin/env python3
# -*- coding: utf-8 -*-

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)
data = json.dumps(data,cls=MyEncoder,indent=4)

2.更简单的一种方法

data = json.dumps(data, default=str)

你可能感兴趣的:(python,爬虫,python,开发语言)