requests
nie obsługuje parsujących odpowiedzi XML, nie. Odpowiedzi XML są o wiele bardziej złożone niż odpowiedzi JSON, a to, jak serializujesz dane XML w strukturach Pythona, nie jest tak proste.
Python ma wbudowane analizatory składni XML. Polecam użyć ElementTree API:
import requests
from xml.etree import ElementTree
response = requests.get(url)
tree = ElementTree.fromstring(response.content)
lub, jeśli odpowiedź jest szczególnie duży, użyj przyrostowe podejście:
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`
Zewnętrzny lxml project opiera się na tym samym API daje więcej możliwości i moc nadal.