我有一个具有bytearray
类型某些属性的复杂对象,当我尝试将其转换为JSON时会引发此错误:
TypeError:字节数组类型的对象不可JSON序列化。
我可以使一种方法对我所知道的bytearray
类型的属性进行硬编码,然后执行以下操作:
bytes(key.key_value).decode(“ utf-8”)
问题是我有很多可能的情况,我想创建一个通用方法,使我可以将JSON的所有bytearray
属性解析为string
。
我尝试制作自己的json.JSONEncoder
实现,但是没有用。有什么建议吗?预先感谢!
答案 0 :(得分:2)
确定要用于将字节数组解码为字符串的编码和错误处理行为,然后:
True 91%
False 09%
Name: column, dtype: int64
用法示例:
import json
class FunkyJSONEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, bytearray):
return obj.decode("utf-8", errors="replace")
else:
return super().default(obj)