Gói yêu cầu Python: Xử lý phản hồi xml


114

Tôi rất thích requestsgói và cách thoải mái của nó để xử lý các phản hồi JSON.

Rất tiếc, tôi không hiểu liệu mình có thể xử lý các phản hồi XML hay không. Có ai có kinh nghiệm làm thế nào để xử lý các phản hồi XML với requestsgói không? Có cần thiết phải bao gồm một gói khác để giải mã XML không?

Câu trả lời:


199

requestskhông xử lý các phản hồi XML phân tích cú pháp, không. Các phản hồi XML về bản chất phức tạp hơn nhiều so với các phản hồi JSON, cách bạn tuần tự hóa dữ liệu XML thành các cấu trúc Python gần như không đơn giản.

Python đi kèm với các trình phân tích cú pháp XML tích hợp sẵn. Tôi khuyên bạn nên sử dụng API ElementTree :

import requests
from xml.etree import ElementTree

response = requests.get(url)

tree = ElementTree.fromstring(response.content)

hoặc, nếu phản hồi đặc biệt lớn, hãy sử dụng phương pháp gia tăng:

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`

Dự án lxml bên ngoài xây dựng trên cùng một API để cung cấp cho bạn nhiều tính năng hơn và vẫn hoạt động hiệu quả.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.