Pythonリクエストパッケージ: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.