如何解决Flask 将一个多维数组作为数组发布给它
注意:使用 Flask 和 Reactjs
我目前正在努力解决一个错误,我将一个 3-d 数组从我的前端发布到我的后端,我正在尝试使用 request.form.get('array',type=list) 检索它,但它最终作为一维数组被接收。
前端:
let data = new FormData();
this.array = [[[1,4],[2,4]],[[3,1],[[7,[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','3','1','7','1']
它不是将数组作为 3 维数组检索,而是将其作为展平的 1 维数组检索,这并不理想。有没有办法解决这个问题?
解决方法
当您将多维数组附加到 javascript formData
对象时,它会自动转换为扁平字符串。
你在 JavaScript 中需要的是:
let data = new FormData();
this.array = [[[1,4],[2,4]],[[3,1],[[7,[1,1]]];
data.append("array",JSON.stringify(array));
然后在烧瓶中:
getlist
方法正是您要找的。p>
尝试以下操作:
array = request.form.getlist('array')
如果它以这样的字符串返回 ['[[[1,1]]]']
,只需使用第一个索引获取列表:array[0]
应该返回
[[[1,1]]]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。