Python Flask将多维数组作为数组发布到它
注:使用烧瓶和反应器 我目前正在与一个bug作斗争,我将一个3-d数组从我的前端发布到后端,并试图使用request.form.get('array',type=list)检索它,但它最终被作为1d数组接收 前端:Python Flask将多维数组作为数组发布到它,python,reactjs,http,flask,stringify,Python,Reactjs,Http,Flask,Stringify,注:使用烧瓶和反应器 我目前正在与一个bug作斗争,我将一个3-d数组从我的前端发布到后端,并试图使用request.form.get('array',type=list)检索它,但它最终被作为1d数组接收 前端: let data = new FormData(); this.array = [[[1,4],[2,4]],[[3,1],[2,4]],[[7,4],[1,1]]] data.append("array", this.array); return axios
let data = new FormData();
this.array = [[[1,4],[2,4]],[[3,1],[2,4]],[[7,4],[1,1]]]
data.append("array", this.array);
return axios
.post(this.url+`/post_arr`, data, {
headers: {
"Content-Type": "multipart/form-data",
},
})
.then((res) => {console.log('hi')
})
}) }
后端:
@app.route('/post_arr',methods=['POST'])
def test():
print(request.form.get('array',type=list))
>['1','4','2','4','3','1','2','4','7','4','1','1']
它不是将阵列检索为三维阵列,而是将其检索为平坦的一维阵列,这并不理想。有没有办法解决这个问题?当您将多维数组附加到javascript
formData
对象时,它会自动转换为扁平字符串
javascript中需要的是:
let data = new FormData();
this.array = [[[1,4],[2,4]],[[3,1],[2,4]],[[7,4],[1,1]]];
data.append("array", JSON.stringify(array));
然后在烧瓶中:
方法就是你要找的
请尝试以下操作:
array=request.form.getlist('array'))
如果它以如下字符串形式返回:['[[1,4],[2,4],[[3,1],[2,4],[[7,4],[1,1]]']
,只需使用第一个索引获取列表:数组[0]
应该回来
[[[1,4],[2,4]],[[3,1],[2,4]],[[7,4],[1,1]]]
出于某种原因,它返回的是相同的展平数组。不确定发生了什么…@S1534我更新了答案-现在再试一次:)