urllib.urlencode
को संसाधित करने के बाद मैं डेटा को कैसे परिवर्तित कर सकता हूं? urllib.urldecode
मौजूद नहीं है।पायथन, विपरीत फ़ंक्शन urllib.urlencode
उत्तर
urlencode
के लिए the docs के रूप में कहते हैं,
urlparse मॉड्यूल कार्यों parse_qs() और parse_qsl() जो अजगर डेटा संरचनाओं में क्वेरी स्ट्रिंग पार्स करने के लिए उपयोग किया जाता है प्रदान करता है।
(पुराने पायथन रिलीज़ में, वे cgi
मॉड्यूल में थे)। तो, उदाहरण के लिए:
>>> import urllib
>>> import urlparse
>>> d = {'a':'b', 'c':'d'}
>>> s = urllib.urlencode(d)
>>> s
'a=b&c=d'
>>> d1 = urlparse.parse_qs(s)
>>> d1
{'a': ['b'], 'c': ['d']}
मूल शब्दकोश d
और के बीच स्पष्ट अंतर "राउंड फिसल गया" एक d1
बाद (इस मामले में एकल आइटम,) सूचियों मूल्यों के रूप में किया है - ऐसा इसलिए है क्योंकि क्वेरी स्ट्रिंग में कोई विशिष्टता गारंटी नहीं है, और आपके ऐप के बारे में यह जानना महत्वपूर्ण हो सकता है कि प्रत्येक कुंजी के लिए कितने मान दिए गए हैं (यानी, सूचियां हमेशा एकल-आइटम वाले नहीं होंगी ;-)।
एक विकल्प के रूप:
>>> sq = urlparse.parse_qsl(s)
>>> sq
[('a', 'b'), ('c', 'd')]
>>> dict(sq)
{'a': 'b', 'c': 'd'}
आप जोड़े (urlencode इस तरह के एक तर्क भी स्वीकार करता है के एक दृश्य प्राप्त कर सकते हैं - इस मामले में यह आदेश को बरकरार रखता है, dict मामले में संरक्षित करने के लिए कोई आदेश नहीं है, जबकि; -)। यदि आपको पता है कि कोई डुप्लिकेट "कुंजी" नहीं है, या यदि कोई है तो परवाह नहीं है, फिर (जैसा कि मैंने दिखाया है) आप गैर-सूची मूल्यों के साथ शब्दकोश प्राप्त करने के लिए dict
पर कॉल कर सकते हैं। आम तौर पर, आपको यह विचार करने की आवश्यकता है कि आप क्या करना चाहते हैं यदि डुप्लिकेट मौजूद हैं (पायथन आपकी तरफ से तय नहीं करता है ;-)।
एलेक्स के समाधान के लिए Python 3 code:
>>> import urllib.parse
>>> d = {'a':'b', 'c':'d'}
>>> s = urllib.parse.urlencode(d)
>>> s
'a=b&c=d'
>>> d1 = urllib.parse.parse_qs(s)
>>> d1
{'a': ['b'], 'c': ['d']}
विकल्प:
>>> sq = urllib.parse.parse_qsl(s)
>>> sq
[('a', 'b'), ('c', 'd')]
>>> dict(sq)
{'a': 'b', 'c': 'd'}
parse_qsl प्रतिवर्ती है:
>>> urllib.parse.urlencode(sq)
'a=b&c=d'
urllib.unquote_plus() आप क्या चाहते हैं नहीं करता है। यह% xx को अपने सिंगल-कैरेक्टर समकक्ष से बचाता है और रिक्त स्थान के साथ प्लस संकेतों को प्रतिस्थापित करता है।
उदाहरण: unquote_plus ('/% 7Ecandidates /? Name = john + connolly') '/ ~ उम्मीदवार/नाम = जॉन connolly' पैदा करता है।
- 1. मैथ विपरीत साइन फ़ंक्शन?
- 2. 'भविष्यवाणी' फ़ंक्शन के विपरीत
- 3. अजगर इंटरफ़ेस - urllib.urlencode गैर- ASCII
- 4. ट्रांसपोज़र/अनजिप फ़ंक्शन (ज़िप के विपरीत)?
- 5. पायथन में टैन के विपरीत (तन -1)
- 6. पायथन फ़ंक्शन
- 7. "विपरीत"?
- 8. पायथन: urllib2.urlopen (यूआरएल, डेटा) आपको डेटा को urllib.urlencode() क्यों करना है?
- 9. महीने का नाम महीना संख्या और इसके विपरीत पायथन
- 10. पायथन सॉकेट.sendall() फ़ंक्शन
- 11. फ़ंक्शन को पायथन
- 12. एक्सप्लॉयबल पायथन फ़ंक्शन
- 13. पायथन नाम मैंगलिंग फ़ंक्शन
- 14. पायथन का ".format" फ़ंक्शन
- 15. पायथन रेंज फ़ंक्शन
- 16. पायथन लैम्ब्डा फ़ंक्शन
- 17. पायथन फ़ंक्शन भ्रम
- 18. फ़ंक्शन पैरामीटर - पायथन
- 19. पायथन: धीमी टाइमिट() फ़ंक्शन
- 20. पायथन यादृच्छिक फ़ंक्शन
- 21. पायथन अधिकतम-फ़ंक्शन द्वारा?
- 22. पायथन का सुपर() फ़ंक्शन
- 23. पायथन: फ़ंक्शन से इटरेटर
- 24. पर्ल में लोकलटाइम फ़ंक्शन के विपरीत क्या है?
- 25. रूबी में स्लाइस फ़ंक्शन का कोई विपरीत कार्य है?
- 26. पीएचपी विपरीत
- 27. क्या ऐसा कोई फ़ंक्शन नहीं है जो किसी अन्य फ़ंक्शन के विपरीत लौटाए?
- 28. नेस्टेड फ़ंक्शन सजावट जो पायथन
- 29. पायथन "निजी" फ़ंक्शन कोडिंग सम्मेलन
- 30. पायथन सीटीपीएस कॉलबैक फ़ंक्शन SWIG
एलेक्स मार्टेलि, धन्यवाद! – Artyom
@ डेरेक, आपका स्वागत है! –
बहुत गहन जवाब। बहुत बढ़िया! –