1. ホーム
  2. python

python3 実行エラー。TypeError: タイプ 'type'のオブジェクトは、JSONシリアライザブルソリューションではありません。

2022-02-13 19:25:34

このエラーの原因は、json.dumps関数が、エンコードできないbyte型のデータを辞書で発見したためです。解決策 エンコード関数の前にエンコードクラスを記述し、bytesをチェックするたびにstrに変換する。

このエンコードクラスのコード例は以下の通りです。

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

import json


class MyEncoder(json.JSONEncoder):

    def default(self, obj):
        """
        As soon as you check for data of type bytes, convert it to str
        :param obj:
        :return:
        """
        if isinstance(obj, bytes):
            return str(obj, encoding='utf-8')
        return json.JSONEncoder.default(self, obj)