问题描述:Python代码出现TypeError: array( 1.)不可序列化JSON错误。
解答:
这个错误通常发生在尝试将不可序列化为JSON格式的对象转换为JSON字符串时。在这种情况下,错误的根本原因是尝试将一个包含NumPy数组的对象转换为JSON字符串。
NumPy数组是一种高效的数据结构,用于存储和处理大量数据。然而,JSON标准并不支持NumPy数组的直接序列化。因此,当我们尝试将包含NumPy数组的对象转换为JSON字符串时,就会出现TypeError。
解决这个问题的方法有两种:
import json
import numpy as np
arr = np.array([1.0])
arr_list = arr.tolist()
json_str = json.dumps(arr_list)
print(json_str)
输出结果为:1.0
import json
import numpy as np
class NumpyEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, np.ndarray):
return obj.tolist()
return super(NumpyEncoder, self).default(obj)
arr = np.array([1.0])
json_str = json.dumps(arr, cls=NumpyEncoder)
print(json_str)
输出结果为:1.0
这样,我们就可以成功地将包含NumPy数组的对象转换为JSON字符串了。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云