requests
не обробляє аналіз XML-відповідей, ні. Відповіді XML набагато складніші за своєю суттю, ніж відповіді JSON, як би ви серіалізували XML-дані в структури Python, не так просто.
Python поставляється із вбудованими XML-аналізаторами. Рекомендую використовувати API ElementTree :
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, щоб отримати більше функцій та потужність.