2011-10-29 24 views
34

我知道在PHP我可以只使用$_GET['key1']['key2']來檢索一個數組的形式發送,但就是東西可能在Python,我剛收到一個字符串GET數據GET查詢參數,它不被識別爲數組/列表。獲取數組在Python

我用瓶/ WERKZEUG如果該事項。

+2

瞭解投票關閉一個問題之前先閱讀問題和人們真正想要的。我知道如何得到請求參數,那不是我所問的。你的網址沒有帶來新的。 –

+2

我沒有投票結束任何事情。畢竟我有不到100名代表,所以我不能那樣做。我給了你一個可能有用的鏈接。 – Confluence

回答

31

參數名的深層解析是PHP AFAIK獨特。

如果您只需要一個簡單的列表,只需傳遞幾個具有相同名稱的參數並使用request.args.getlist(<paramname>)documentation)即可。

否則,你必須自己解析查詢字符串。

+0

我很害怕這個。不幸的是,我正在從發送數組的支付網關解析IPN,所以我必須將它們解析爲字符串,我相信。 –

+0

IPN是如何編碼的?你能舉一個例子嗎? –

+0

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

43

request.args是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 

如果你想提交結構複雜得多,可以通過簡單的按鍵編碼:丘壑,考慮派遣一個JSON編碼的對象。

此外,看看jQuery的遞歸參數序列化pattern,和jquery-unparam lib可以反序列化它。

-1
request.query_params 

將返回所有的鍵值對列表的所有get請求參數

的Django,DRF