1. 程式人生 > >flask中array轉換時遇到的坑

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,但是發現只有一個括號 ()

說明我在 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)