kravitz
kravitz

Reputation: 1063

How do I handle a JSON request in Bottle?

I need to get data from JSON, transferred by Ajax from the client. Basically I used something like this:

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

Where main.parse_request is a function, that contains some logics to deal with variables in JSON (it is a main procedure of our game engine).

So the problem is that I can't correctly handle JSON variables, by transforming request.GET in a dict: because in a way that I already wrote I can't pass nested objects and arrays. Also every value has a string type, while I need to have integer types on integers and string type on rest other.

Or, since I can obtain the original query string (by request.query_string), how can I convert a query string into an original JSON object?

Upvotes: 18

Views: 28178

Answers (2)

Felix Yan
Felix Yan

Reputation: 15279

Now since bottle 0.10, the request.json is ready for use :)

Document is here.

Upvotes: 28

Like
Like

Reputation: 1536

request.json is limited by MEMFILE_MAX.

Another way works if request data is larger than MEMFILE_MAX

json.load(request.body)

Upvotes: 21

Related Questions