2014-12-18 5 views
5

मैं एक अजगर सरणीसूची

tree = et.parse(os.environ['SPRINT_XML']) 
olp = tree.findall(".//string") 
if not olp: 
    print colored('FAILED', 'red') +" No jobs accociated to this view" 
    exit(1) 
joblist = [t.text for t in olp] 

मुझे लगता है कि इसके बाद के संस्करण t.text लिए कर सकते हैं कैसे में एपीआई पदों के लिए% से 20 रिक्त स्थान बदलने की आवश्यकता में% से 20 रिक्त स्थान कन्वर्ट? इस के लिए

+1

मुझे एक डबल प्रश्न लगता है। क्या आप जानते हैं कि एक तत्व को कैसे परिवर्तित किया जाए? –

+1

https://docs.python.org/2/library/urllib.html#urllib.quote –

+0

अन्य पात्रों के बारे में क्या, क्या उन्हें यूआरएल एन्कोडेड भी नहीं होना चाहिए? –

उत्तर

12

को यहां बताए गए String.replace() विधि का उपयोग करें: http://www.tutorialspoint.com/python/string_replace.htm

तो t.text के लिए, यह t.text.replace(" ", "%20")

+0

सही काम करता है और तरीका कम से कम कम है उपर्युक्त उत्तर पता नहीं क्यों हर कोई सोचता है कि एक ही परिणाम प्राप्त करने के लिए urllib इतना आवश्यक है। – Jordan

+2

@ जोर्डन यदि उपयोगकर्ता का इरादा एक गतिशील यूआरएल का उपयोग करना है, तो एक सिंगल कैरेक्टर की कई घटनाओं को बदलने के बजाय, संपूर्ण स्ट्रिंग से बचने के लिए यह अधिक सुरक्षित है। – mbomb007

+1

'urllib' उत्तर, तर्कसंगत रूप से, बेहतर है क्योंकि यह आपके इरादे को स्पष्ट बनाता है: आप स्ट्रिंग को यूआरएल-एन्कोडिंग कर रहे हैं। '% 20' के साथ रिक्त स्थान बदलना * कैसे * आप इसे कर रहे हैं (माना जाता है कि रिक्त स्थान केवल एक चीज है जिसके बारे में आपको चिंता करने की आवश्यकता है)। लेखन कोड जो स्वयं को समझाता है वह बेहतर है। – kindall

5

उपयोग urllib.quote_plus:

import urllib 

... 

joblist = [urllib.quote_plus(t.text) for t in olp] 
+1

और पायथन 3 ['urllib.parse.quote_plus'] में (https://docs.python.org/3/library/urllib.parse.html#urllib.parse.quote_plus) –

5

होगा मैं urllib.parse मॉड्यूल का उपयोग कर की सिफारिश करेंगे और यह quote() है समारोह। Python3 के लिए https://docs.python.org/3.6/library/urllib.parse.html#urllib.parse.quote उदाहरण:

import urllib 
text_encoded = urllib.parse.quote(t.text) 

नोट: का उपयोग कर quote_plus() अपने मामले में काम नहीं करेगा इस समारोह के साथ साथ चार से रिक्त स्थान की जगह के रूप में।

+0

urllib में पार्स –

+0

@TylerR हाँ नामक कोई मॉड्यूल नहीं है, इसमें https://docs.python.org/3/library/urllib.parse.html#module-urllib.parse –

+0

python 2 में urllib.quote है – theannouncer