แพคเกจคำขอ Python: การจัดการการตอบสนอง xml


114

ฉันชอบrequestsแพ็คเกจนี้มากและวิธีจัดการการตอบสนอง JSON ที่สะดวกสบาย

ขออภัยฉันไม่เข้าใจว่าฉันสามารถประมวลผลการตอบกลับ XML ได้หรือไม่ ใครมีประสบการณ์ในการจัดการกับการตอบสนอง XML ด้วยrequestsแพคเกจบ้าง? จำเป็นต้องรวมแพ็คเกจอื่นสำหรับการถอดรหัส XML หรือไม่

คำตอบ:


199

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 เดียวกันเพื่อให้คุณมีคุณสมบัติมากขึ้นและยังคงใช้พลังงานได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.