Как мне обработать JSON-запрос в бутылке? - PullRequest
14 голосов
/ 30 октября 2010

Мне нужно получить данные из JSON, переданные Ajax от клиента. В основном я использовал что-то вроде этого:

@route('/ajax')
def serve_ajax():
    return main.parse_request(json.dumps(dict(request.GET)))

Где main.parse_request - это функция, которая содержит некоторые логики для работы с переменными в JSON (это основная процедура нашего игрового движка).

Так что проблема в том, что я не могу правильно обрабатывать переменные JSON, преобразуя request.GET в диктовку: потому что, как я уже писал, я не могу передавать вложенные объекты и массивы. Также каждое значение имеет строковый тип, в то время как мне нужно иметь целочисленные типы для целых чисел и строковый тип для остальных остальных.

Или, поскольку я могу получить исходную строку запроса (request.query_string), как я могу преобразовать строку запроса в исходный объект JSON?

Ответы [ 2 ]

22 голосов
/ 05 декабря 2011

Теперь, поскольку бутылка 0.10 , request.json готова к использованию:)

Документ здесь .

18 голосов
/ 14 декабря 2012

request.json ограничено MEMFILE_MAX .

Другой способ работает, если данные запроса больше, чем MEMFILE_MAX

json.load(request.body)
...