Python Requests 패키지 : XML 응답 처리


114

저는 requests패키지와 JSON 응답을 처리하는 편리한 방법을 매우 좋아 합니다.

안타깝게도 XML 응답도 처리 할 수 ​​있는지 이해하지 못했습니다. requests패키지로 XML 응답을 처리하는 방법을 경험 한 사람이 있습니까? XML 디코딩을 위해 다른 패키지를 포함해야합니까?

답변:


199

requestsXML 응답 구문 분석을 처리하지 않습니다. XML 응답은 본질적으로 JSON 응답보다 훨씬 더 복잡합니다. XML 데이터를 Python 구조로 직렬화하는 방법은 그리 간단하지 않습니다.

Python에는 내장 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를 기반으로합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.