2013-08-19 14 views
63

मुझे requests पैकेज और JSON प्रतिक्रियाओं को संभालने का यह आसान तरीका पसंद है।पायथन अनुरोध पैकेज: xml प्रतिक्रिया को संभालना

दुर्भाग्यवश, मुझे समझ में नहीं आया कि मैं XML प्रतिक्रियाओं को भी संसाधित कर सकता हूं। क्या किसी ने अनुभव किया है कि requests पैकेज के साथ XML प्रतिक्रियाओं को कैसे संभालना है? एक्सएमएल डिकोडिंग के लिए urllib2 जैसे किसी अन्य पैकेज को शामिल करना आवश्यक है?

उत्तर

114

requests पार्सिंग एक्सएमएल प्रतिक्रियाओं को संभाल नहीं करता है, नहीं। जेएसओएन प्रतिक्रियाओं की तुलना में एक्सएमएल प्रतिक्रिया प्रकृति में अधिक जटिल हैं, आप पाइथन संरचनाओं में एक्सएमएल डेटा को क्रमबद्ध कैसे करेंगे, लगभग सीधा नहीं है।

पायथन अंतर्निहित एक्सएमएल पार्सर्स के साथ आता है। मैं सुझाव है कि आप का उपयोग ElementTree API:

import requests 
from xml.etree import ElementTree 

response = requests.get(url) 

tree = ElementTree.fromstring(response.content) 

या, यदि प्रतिक्रिया विशेष रूप से बड़ी है, एक वृद्धिशील दृष्टिकोण का उपयोग करें:

response = requests.get(url, stream=True) 
# if the server sent a Gzip or Deflate compressed response, decompress 
# as we read the raw stream: 
response.raw.decode_content = True 

events = ElementTree.iterparse(response.raw) 
for event, elem in events: 
    # do something with `elem` 

बाहरी lxml project ही एपीआई पर बनाता है आप और अधिक सुविधाओं और शक्ति देने के लिए फिर भी।

संबंधित मुद्दे