TypeError: Object of type ndarray is not JSON serializable
时间: 2024-06-14 22:08:06 浏览: 205
要解决TypeError: Object of type 'ndarray' is not JSON serializable错误,可以尝试以下几种解决方案:
1. 使用tolist()方法将ndarray对象转换为列表:
```python
import numpy as np
arr = np.array([1, 2, 3])
json_serializable_list = arr.tolist()
```
2. 使用astype()方法将ndarray对象转换为其他可序列化的数据类型,例如float或int:
```python
import numpy as np
arr = np.array([1, 2, 3])
json_serializable_arr = arr.astype(float)
```
3. 使用tostring()方法将ndarray对象转换为字符串,并在需要时进行反序列化:
```python
import numpy as np
arr = np.array([1, 2, 3])
json_serializable_str = arr.tostring()
# 在需要时进行反序列化
arr_deserialized = np.fromstring(json_serializable_str, dtype=arr.dtype)
```
4. 使用json.dumps()方法时,指定一个自定义的序列化函数来处理ndarray对象:
```python
import numpy as np
import json
def ndarray_to_list(obj):
if isinstance(obj, np.ndarray):
return obj.tolist()
raise TypeError(f"Object of type {type(obj)} is not JSON serializable")
arr = np.array([1, 2, 3])
json_str = json.dumps(arr, default=ndarray_to_list)
```
阅读全文