2011-10-29 13 views
34

Wiem, że w php mogę po prostu użyć $_GET['key1']['key2'] do pobrania danych GET, które są wysyłane w postaci tablicy, ale jest to coś możliwego w Pythonie, ponieważ właśnie otrzymuję ciąg znaków i nie jest on rozpoznane jako tablica/lista.Uzyskiwanie tablicy jako parametrów zapytania GET w Pythonie

Używam kolby/werkzeug, jeśli to ma znaczenie.

+2

Naucz się czytać pytanie i co ludzie rzeczywiście chcą przed głosowaniem, aby zamknąć pytanie. Wiem, jak uzyskać paragony wniosków, nie o to pytałem. Twój adres nie przynosi nic nowego. –

+2

Nie głosowałem, aby cokolwiek zamknąć. W końcu mam mniej niż 100 przedstawicieli, więc nie mogę tego zrobić. Dałem ci link, który może być pomocny. – Confluence

Odpowiedz

31

Głębokie parsowanie nazw argumentów jest unikalne dla PHP AFAIK.

Jeśli potrzebujesz tylko prostej listy, wystarczy podać kilka parametrów o tej samej nazwie i użyć request.args.getlist(<paramname>) (documentation).

W przeciwnym razie należy samemu przeanalizować ciąg zapytania.

+0

Bałem się tego. Niestety, parsuję IPN z bramy płatności, która wysyła tablice, więc muszę je przeanalizować jako łańcuchy, które uważam. –

+0

W jaki sposób są kodowane IPN? Czy możesz wysłać przykład? –

+0

IPN_REFNO [23456,23465] & IPN_TOTALAMOUNT [2133,3455] –

43

request.args jest instancją typu MultiDict (MultiDict, Flask request api).

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

Jeśli chcesz przesłać konstrukcje bardziej skomplikowane niż może być kodowany za pomocą prostych kluczowe: Vals, rozważyć wysłanie json zakodowany obiekt.

Zobacz także jQuery rekursywną serializację szeregową pattern i bibliotekę jquery-unparam, która może deserializować to.

-1
request.query_params 

zwróci wszystkie pary kluczy listy wartość wszystkich dostać żądanie Parametry

Django, DRF

Powiązane problemy