問題描述
在導入Python json包,調用json.dump/dumps函數(shù)時,可能會遇到TypeError: Object of type xxx is not JSON serializable錯誤始腾,也就是無法序列化某些對象格式。
解決辦法
自定義序列化方法
class MyEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, np.integer):
return int(obj)
elif isinstance(obj, np.floating):
return float(obj)
elif isinstance(obj, np.ndarray):
return obj.tolist()
if isinstance(obj, time):
return obj.__str__()
else:
return super(NpEncoder, self).default(obj)
然后在調用json.dump/dumps時欠母,指定使用自定義序列化方法
json.dumps(data, cls=MyEncoder)