2015-12-18 3 views
0

Я пытаюсь получить 2-D список в моем приложении для фляшек. Объект JSON отправлен следующим образом:Получение двумерного списка в качестве параметров запроса в Python Flask

function someFunction() { 
    var two_d_arr = [[a,1],[b,2],[c,3]]; 
    var data = { 
    'arr' : two_d_arr 
    }; 

    $.ajax({ 
    url: 'http://localhost:5025/', 
    dataType: 'jsonp', 
    data: data, 
    success: function(response) { 
     alert(response); 
    } 
    }); 
} 

Я несколько раз пытался получить эти кортежи в виде списка и терплю неудачу. То, как я хотел бы видеть их список выглядит следующим образом:

lst = [[a,1],[b,2],[c,3]] 

При печати request.data я получаю следующий вывод (отформатирован для удобства чтения):

ImmutableMultiDict([(
    'callback', u'jQuery1113017347401613369584_1450454196704'), 
    ('liveCells[2][]', u'c'), ('liveCells[2][]', u'3'), 
    ('liveCells[1][]', u'b'), ('liveCells[1][]', u'2'), 
    ('liveCells[0][]', u'a'), ('liveCells[0][]', u'1') 
]) 

Я пробовал различные способы извлечь только список (request.form.getlist, request.args.getList) и т. д.

ответ

1

Вы не кодируете запрос JSON. Вы указываете только то, что ожидаете от , получите с сервера (потому что вы ожидаете, что JSONP jQuery содержит параметр callback).

Кодировать в JSON на стороне клиента:

$.ajax({ 
    url: 'http://localhost:5025/', 
    data: JSON.stringify(data), 
    success: function(response) { 
     alert(response); 
    } 
}); 

Я опустил dataType аргумент, только если установлен один Jquery не может автоматически определять тип ответа.

На стороне сервера прочитайте ответ с request.get_json().

Смежные вопросы