दिलचस्प पोस्ट
क्यों मैं <bits / stdc ++। H> शामिल नहीं होना चाहिए? PHP सत्र में संग्रहीत ऑब्जेक्ट ईपीप्लस के साथ एक्सेल करने के लिए डेटाटाइल निर्यात करें संकल्प के साथ अंगारियस यूरी-राउटर सार राज्य Google Play सेवाओं पर अपग्रेड करें: 9.0.0 त्रुटि को हल करने में विफल: com.google.android.gms: play-services-measurement: 9.0.0 PHP के साथ MySQL डाटाबेस में सरणी डालें एक स्विंग जेटेक्स्टएरिया पर पाठ-माउसओवर पॉपअप? अल्पविराम से अलग वेक्टर बनाना एक इनलाइन फॉर्मसेट को पूर्व में जमा करें? पायथन में stderr को कैसे मुद्रित करना है? जावा पर एक जेफॉर्म में जेपीएनएल सामग्री स्लाइड करें IOS 7 UITextView ऊर्ध्वाधर संरेखण तत्काल प्रथम बाल तत्व प्राप्त करें एक्सेल VBA यदि वर्कशीट ("wsName") मौजूद है git छिपाने की जगह और आवेदन

कैसे पायथन में यूआरएल पैरामीटर में सांकेतिक शब्दों में बदलना है?

यदि मैं करता हूँ

url = "http://example.com?p=" + urllib.quote(query) 
  1. यह एन्कोड / %2F करने के लिए नहीं है (OAuth सामान्यीकरण टूटता है)
  2. यह यूनिकोड को संभाल नहीं करता है (यह एक अपवाद फेंकता है)

क्या कोई बेहतर लाइब्रेरी है?

Solutions Collecting From Web of "कैसे पायथन में यूआरएल पैरामीटर में सांकेतिक शब्दों में बदलना है?"

डॉक्स से :

 urllib.quote(string[, safe]) 

% Xx escape का उपयोग करके स्ट्रिंग में विशेष वर्ण बदलें अक्षरों, अंक, और वर्ण '_.-' उद्धृत नहीं किए गए हैं डिफ़ॉल्ट रूप से, यह फ़ंक्शन यूआरएल के पथ खंड को उद्धृत करने के लिए अभिप्रेत है। वैकल्पिक सुरक्षित पैरामीटर अतिरिक्त वर्णों को निर्दिष्ट करता है जिन्हें उद्धृत नहीं किया जाना चाहिए – इसका डिफ़ॉल्ट मान '/' है

इसका अर्थ है कि सुरक्षा के लिए '' पासिंग '' का आपका पहला मुद्दा हल होगा:

 >>> urllib.quote('/test') '/test' >>> urllib.quote('/test', safe='') '%2Ftest' 

दूसरे मुद्दे के बारे में, इसके बारे में यहां एक बग रिपोर्ट है जाहिरा तौर पर यह अजगर 3 में तय हो गया था। आप इसे यूटीएफ 8 के रूप में एन्कोडिंग द्वारा इसका समाधान कर सकते हैं:

 >>> query = urllib.quote(u"Müller".encode('utf8')) >>> print urllib.unquote(query).decode('utf8') Müller 

जिस तरह से urlencode पर एक नज़र है

ध्यान दें कि urllib.quote urllib.parse.quote में पायथन urllib.parse.quote में स्थानांतरित कर urllib.parse.quote गया है

पायथन 3 में, urllib.quote को urllib.quote में स्थानांतरित कर दिया गया है और यह डिफ़ॉल्ट रूप से यूनिकोड को संभालता है।

 >>> from urllib.parse import quote >>> quote('/test') '/test' >>> quote('/test', safe='') '%2Ftest' >>> quote('/El Niño/') '/El%20Ni%C3%B1o/' 

मेरा जवाब पाओलो के उत्तर के समान है।

मुझे लगता है कि मॉड्यूल requests बहुत बेहतर हैं यह urllib3 पर आधारित है आप यह कोशिश कर सकते हैं:

 >>> from requests.utils import quote >>> quote('/test') '/test' >>> quote('/test', safe='') '%2Ftest' 

यदि आप डीजेंगो का उपयोग कर रहे हैं, तो आप urlquote का उपयोग कर सकते हैं:

 >>> from django.utils.http import urlquote >>> urlquote(u"Müller") u'M%C3%BCller'