2013-08-19 63 views
63

Tôi thích rất nhiều gói requests và cách thoải mái để xử lý phản hồi JSON.Gói yêu cầu Python: Xử lý phản hồi xml

Thật không may, tôi không hiểu liệu tôi cũng có thể xử lý 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 gói requests? Có cần bao gồm một gói khác như urllib2 để giải mã XML không?

Trả lời

114

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

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

import requests 
from xml.etree import ElementTree 

response = requests.get(url) 

tree = ElementTree.fromstring(response.content) 

hoặc, nếu câu trả lời là đặc biệt lớn, sử dụng một cách tiếp cận 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` 

Các bên ngoài lxml project xây dựng trên cùng một API để cung cấp cho bạn nhiều tính năng và sức mạnh vẫn.

Các vấn đề liên quan