Python 处理Flask请求中的嵌套数组
我在Flask中构建了一个Web服务器,并使用jsonp传入请求。我传入的东西之一是一个嵌套数组,当我在Flask中检索数据时,数组完全乱了。 这是我的密码 index.htmlPython 处理Flask请求中的嵌套数组,python,ajax,flask,jsonp,Python,Ajax,Flask,Jsonp,我在Flask中构建了一个Web服务器,并使用jsonp传入请求。我传入的东西之一是一个嵌套数组,当我在Flask中检索数据时,数组完全乱了。 这是我的密码 index.html var array = [[2,1],[2,2],[2,3]] function getNext() { var data = { 'M': 5, 'N': 5, 'array' : array }; $.ajax({ url: '
var array = [[2,1],[2,2],[2,3]]
function getNext() {
var data = {
'M': 5,
'N': 5,
'array' : array
};
$.ajax({
url: '/getNewGeneration',
jsonp: 'callback',
dataType: 'jsonp',
data: data,
success: function(response) {
...
}
});
}
server.py
@app.route('/getNewGeneration')
def getNext():
M = request.args.get('M')
N = request.args.get('N')
liveCells = request.args.get('liveCells')
...
当我打印出request.args
时,我得到了ImmutableMultiDict([('callback',u'jQuery171168384227754848142',('array[2][],u'2'),('array[2][',u'3'),('array[1][',u'2'),('array[1][',u'2'),('N',u'5'),('M',u'M',u'5'),('u'uu',u'14127367145'),('array[0',u'2]]'''>u'1'>
有人知道如何解决这个问题吗?像这样做,我想它会对你有用
$.ajax({
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(data),
dataType: 'json',
url: 'getNewGeneration',
success: function (e) {
console.log(e);
}
});
然后尝试打印request.json
。我发现您的代码有两个问题。首先,您不需要传递名为'liveCells'
的密钥。您传递一个名为'array'
。您需要在JavaScript中或在烧瓶端更新它。假设您想要前者,您的JavaScript应该如下所示
var array = [[2,1],[2,2],[2,3]]
function getNext() {
var data = {
'M': 5,
'N': 5,
'liveCells' : array
};
$.ajax({
url: '/getNewGeneration',
jsonp: 'callback',
dataType: 'jsonp',
data: data,
success: function(response) {
...
}
});
}
其次,不能使用get
方法检索多值键ImmutableMultiDict
s,例如request.args
,提供一个名为getlist
的方法,该方法将返回给定键的项目列表,而不是单个值。将代码更新为
liveCells = request.args.getlist('liveCells')
更多信息可以在.isrequest.json
中找到,也就是说弄糟了?request.json返回了none这是我找到的唯一答案,因此提到了一个getList
函数,所以感谢您指出这一点。