Пакет запитів Python: Обробка відповіді xml


114

Мені дуже подобається requestsпакет і його зручний спосіб поводження з JSON-відповідями.

На жаль, я не зрозумів, чи можу я також обробити відповіді XML. Хто-небудь має досвід, як обробляти відповіді XML за допомогою requestsпакета? Чи потрібно включати ще один пакет для декодування XML?

Відповіді:


199

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, щоб отримати більше функцій та потужність.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.