Python 处理Flask请求中的嵌套数组

Python 处理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: '

我在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: '/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')

更多信息可以在.

is
request.json
中找到,也就是说弄糟了?request.json返回了none这是我找到的唯一答案,因此提到了一个
getList
函数,所以感谢您指出这一点。