Python İstek paketi: xml yanıtını işleme


114

requestsPaketi ve JSON yanıtlarını rahat bir şekilde işleme şeklini çok seviyorum .

Maalesef XML yanıtlarını da işleyip işleyemeyeceğimi anlamadım. requestsPaketle XML yanıtlarının nasıl işleneceği konusunda deneyimli olan var mı? XML kod çözme için başka bir paket eklemek gerekli midir?

Yanıtlar:


199

requestsXML yanıtlarını ayrıştırmaz, hayır. XML yanıtları, doğası gereği JSON yanıtlarından çok daha karmaşıktır, XML verilerini Python yapılarına nasıl serileştireceğiniz neredeyse basit değildir.

Python, yerleşik XML ayrıştırıcılarla birlikte gelir. ElementTree API'yi kullanmanızı tavsiye ederim :

import requests
from xml.etree import ElementTree

response = requests.get(url)

tree = ElementTree.fromstring(response.content)

veya yanıt özellikle büyükse, artımlı bir yaklaşım kullanın:

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`

Harici lxml projesi , size daha fazla özellik ve güç sağlamak için aynı API üzerine kurulur .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.