flask中array轉換時遇到的坑
阿新 • • 發佈:2019-02-01
將陣列從前端傳遞到後端,經過運算將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)