Python Flask将多维数组作为数组发布到它

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

注:使用烧瓶和反应器

我目前正在与一个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
      .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我更新了答案-现在再试一次:)