flask中array转换时遇到的坑

将数组从前端传递到后端,经过运算将json类型的数据返回给前端

[[1,2],[4,5]]   [[1,1], [1,1]]大概就是这样一个二维数组

@app.route('/t',methods=["GET", "POST"])
def t():
    a = request.form['a']  # 接受从前端发送过来的数据
    b = request.form['b']
    A = np.array(a)
    B = np.array(b)
    S1 = linalg.solve(A, B)  # 对方程组进行求解
    S1 = np.ndarray.tolist(S1)  #
    return jsonify(S1)

tolist是为了将array换换为list

这是我一开始写的

会报错

could not convert string to float: "[[1,2],[4,5]]"

然后我查看了 A的类型为numpy.array  A=[[1,2],[4,5]], 

没毛病呀

然后又查看了shape,但是发现只有一个括号 ()

扫描二维码关注公众号,回复: 2337511 查看本文章

说明我在 str --> array 是出错

然后我吧str转换为list, list(a) 在转换为 array

打印list 返现变成了   ["[" "1", "2" "]",  .........

反正是除了最外边的括号都变成了字符串,我又不想用正则

在经过了一通查找之后发现一个函数eval()  次函数会将srt,转换为list,dict .... 具体的自行百度

最后的程序是这样的

@app.route('/t',methods=["GET", "POST"])
def t():
    a = request.form['a']  # 接受从前端发送过来的数据
    b = request.form['b']
    a = eval(a)  # 将str转换为list
    b = eval(b)
    A = np.array(a)  # 将list转换为array
    B = np.array(b)
    S1 = linalg.solve(A, B)  # 对方程组进行求解
    S1 = np.ndarray.tolist(S1)  #
    return jsonify(S1)

猜你喜欢

转载自blog.csdn.net/a549416598/article/details/81172754