在Python中解析JSON中的所有字节数组值

时间:2018-09-07 21:00:45

标签: python arrays json python-3.x

我有一个具有bytearray类型某些属性的复杂对象,当我尝试将其转换为JSON时会引发此错误:

  

TypeError:字节数组类型的对象不可JSON序列化。

我可以使一种方法对我所知道的bytearray类型的属性进行硬编码,然后执行以下操作:

  

bytes(key.key_value).decode(“ utf-8”)

问题是我有很多可能的情况,我想创建一个通用方法,使我可以将JSON的所有bytearray属性解析为string。 我尝试制作自己的json.JSONEncoder实现,但是没有用。有什么建议吗?预先感谢!

1 个答案:

答案 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)