Getting the array as GET query parameters in Python

Question:

I know in php I could just use $_GET['key1']['key2'] to retrieve GET data that is sent in the form of an array but is that something possible in Python as I just receive a string and it’s not recognized as an array/list.

I use flask/werkzeug if that matters.

Asked By: Romeo M.

||

Answers:

The deep parsing of argument names is unique for PHP AFAIK.

If you need just a simple list, just pass several parameters with the same name and use request.args.getlist(<paramname>) (documentation).

Otherwise you have to parse the query string yourself.

Answered By: cschorn

request.args is a MultiDict instance (MultiDict, Flask request api).

request.args[key] ## returns a single value, the first if there are multiple
request.args.getlist(key) ## returns a list

If you want to submit structures more complex than can be encoded using simple key:vals, consider sending a json encoded object.

Also, look at the jQuery recursive param serialisation pattern, and the jquery-unparam lib which can deserialise it.

Answered By: Rob Cowie
Categories: questions Tags: , , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.