पायथन अनुरोध पैकेज: xml प्रतिक्रिया को संभालना


114

मुझे requestsJSON प्रतिक्रियाओं को संभालने के लिए पैकेज और उसका आरामदायक तरीका बहुत पसंद है ।

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

जवाबों:


199

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

पायथन अंतर्निहित एक्सएमएल पार्सर्स के साथ आता है। मेरी सलाह है कि आप 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 प्रोजेक्ट आपको अधिक सुविधाएँ और शक्ति देने के लिए उसी API पर बनाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.