Dru*_*els 8 python arrays json numpy python-3.x
我有一个程序以NumPy数组的形式处理数据,需要以JSON形式存储(以后将其传递给另一个程序以可视化数据).当我尝试以下内容时:
my_array = np.array([3, 4, 5])
json.dumps(my_array)
Run Code Online (Sandbox Code Playgroud)
我收到一条错误信息
TypeError: array([3, 4, 5]) is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
事实证明,数组不可序列化.我希望通过将数组转换为普通列表来解决这个问题,但是如果我尝试的话
my_array = np.array([3, 4, 5])
my_list = list(my_array)
json.dumps(my_list)
Run Code Online (Sandbox Code Playgroud)
我只是读错了
TypeError: 3 is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
(这3似乎是因为'3'是列表的第一个元素)
更奇怪的是,当我尝试从头开始重建列表时,这个错误仍然存在:
def plain_list(ls):
pl = []
for element in ls:
pl.append(element)
return pl
my_array = np.array([3, 4, 5])
my_list = plain_list(my_array)
json.dumps(my_list)
Run Code Online (Sandbox Code Playgroud)
仍然回来
TypeError: 3 is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
use*_*ica 10
这3是一个NumPy整数,它显示为常规Python int,但不是一个.使用tolist让普通的Python整数列表:
json.dumps(my_array.tolist())
Run Code Online (Sandbox Code Playgroud)
这也将多维数组转换为嵌套列表,因此您不必处理3维数组的3层列表推导.