Получение массива в качестве параметров запроса GET в Python

Я знаю, что в PHP я мог бы просто использовать $_GET['key1']['key2'] чтобы получить данные, которые отправляются в виде массива, но что-то возможно в Python, поскольку я просто получаю строку, и она не распознается как массив/список.

Я использую flask / werkzeug, если это имеет значение.

3 ответов


глубокий анализ имен аргументов уникален для PHP AFAIK.

Если вам нужен простой список, просто передайте несколько параметров с тем же именем и используйте request.args.getlist(<paramname>) (документация).

в противном случае вы должны сами разобрать строку запроса.


request.args - это экземпляр MultiDict (MultiDict, api запроса колбы).

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

Если вы хотите отправить структуры более сложные, чем могут быть закодированы с помощью простого ключа:vals, рассмотрите возможность отправки объекта, закодированного json.

кроме того, посмотрите на рекурсивную сериализацию jQuery param шаблон и jquery-unparam lib, который может десериализовать его.


request.query_params

вернет весь список пар ключевых значений всех параметров запроса get

Django, DRF