2011-10-29 15 views
34

में जीईटी क्वेरी पैरामीटर के रूप में सरणी प्राप्त करना मुझे पता है कि मैं एपी के रूप में भेजे गए जीईटी डेटा को पुनः प्राप्त करने के लिए $_GET['key1']['key2'] का उपयोग कर सकता हूं लेकिन पाइथन में कुछ ऐसा संभव है क्योंकि मुझे बस एक स्ट्रिंग प्राप्त होती है और यह नहीं है एक सरणी/सूची के रूप में पहचाना गया।पाइथन

यदि यह महत्वपूर्ण है तो मैं फ्लास्क/werkzeug का उपयोग करता हूं।

+2

एक सवाल बंद करने के लिए मतदान से पहले सवाल और क्या लोग वास्तव में चाहते हैं पढ़ने के लिए जानें पैरामीटर सभी महत्वपूर्ण मूल्य जोड़ी सूची वापस आ जाएगी। मुझे पता है कि अनुरोध पैराम कैसे प्राप्त करें, यही वह नहीं है जो मैंने पूछा था। आपका यूआरएल कुछ नया नहीं लाता है। –

+2

मैंने कुछ भी बंद करने के लिए वोट नहीं दिया था। आखिरकार मेरे पास 100 से कम प्रतिनिधि हैं, इसलिए मैं ऐसा नहीं कर सकता। मैंने आपको एक लिंक दिया जो सहायक हो सकता है। – Confluence

उत्तर

31

तर्क नामों की गहरी पार्सिंग PHP AFAIK के लिए अद्वितीय है।

यदि आपको केवल एक साधारण सूची की आवश्यकता है, तो बस एक ही नाम के साथ कई पैरामीटर पास करें और request.args.getlist(<paramname>) (documentation) का उपयोग करें।

अन्यथा आपको क्वेरी स्ट्रिंग को स्वयं पार्स करना होगा।

+0

मुझे इससे डर था। दुर्भाग्य से मैं एक भुगतान गेटवे से एक आईपीएन पार्स कर रहा हूं जो सरणी भेजता है, इसलिए मुझे उन तारों के रूप में विश्लेषण करना होगा जो मुझे विश्वास है। –

+0

आईपीएन कैसे एन्कोड किए गए हैं? क्या आप एक उदाहरण पोस्ट कर सकते हैं? –

+0

IPN_REFNO [23456,23465] और आईपीएन_TOTALAMOUNT [2133,3455] –

43

request.args एक मल्टीडिक्ट उदाहरण (MultiDict, Flask request api) है।

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

आप और अधिक जटिल की तुलना में सरल कुंजी का उपयोग कर एन्कोड किया जा सकता संरचनाओं सबमिट करना चाहते हैं: Vals, एक json इनकोडिंग वस्तु भेजने पर विचार करें।

इसके अलावा, jQuery रिकर्सिव पैराम सीरियलाइजेशन pattern, और jquery-unparam lib देखें जो इसे deserialise कर सकते हैं।

-1
request.query_params 

के सभी पाने के अनुरोध

Django, डीआरएफ