flask中array转换时遇到的坑

在Flask应用中,遇到将前端传递的二维数组转换为后端处理的问题。尝试将JSON数据转换并返回时,遇到了'could not convert string to float'的错误。问题出在将字符串转为numpy.array时。通过检查类型和形状,发现字符串已被错误地拆分为单个字符。解决方法是使用eval()函数将字符串正确转换为所需的数据结构,避免了使用正则表达式。
摘要由CSDN通过智能技术生成

 

将数组从前端传递到后端,经过运算将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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值