requests
パッケージと、JSON応答を処理する快適な方法がとても気に入っています。
残念ながら、XML応答も処理できるかどうかはわかりませんでした。 requests
パッケージでXML応答を処理する方法を経験した人はいますか? XMLデコード用に別のパッケージを含める必要がありますか?
requests
はXML応答の解析を処理しません、いいえ。 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に基づいて構築され、より多くの機能とパワーを提供します。