Python常用内建模块——XML

操作XML有两种方法:DOM和SAX。DOM会把整个XML读入内存,解析为树,因此占用内存大,解析慢,优点是可以任意遍历树的节点。SAX是流模式,边读边解析,占用内存小,解析快,缺点是我们需要自己处理事件。

正常情况下,优先考虑SAX,因为DOM实在太占内存。

在Python中使用SAX解析XML非常简洁,通常我们关心的事件是start_elementend_elementchar_data,准备好这3个函数,然后就可以解析xml了。

练习

请利用SAX编写程序解析WeatherAPI的XML格式的天气预报,获取天气预报:

复制代码
from xml.parsers.expat import ParserCreate
from urllib import request

def parseXml(xml_str):
    print(xml_str)
    return {
        'city': '?',
        'weather': {
            'condition': 'Sunny',
            'temperature': 37.2,
            'wind': 9.7
        }
    }

# 测试:
URL = 'https://api.weatherapi.com/v1/current.xml?key=b4e8f86b44654e6b86885330242207&q=Beijing&aqi=no'

with request.urlopen(URL, timeout=4) as f:
    data = f.read()

result = parseXml(data.decode('utf-8'))
assert result['city'] == 'Beijing'
相关推荐
Cthy_hy几秒前
基于首届中国互联网数据挖掘竞赛数据集的行为相似网络分析
python·信息可视化·数据挖掘
AI玫瑰助手5 分钟前
Python运算符:逻辑运算符(and/or/not)的短路特性
开发语言·python·信息可视化
是梦终空5 分钟前
计算机源码274—基于深度学习的中医舌象智能识别与健康管理系统(源代码+数据库+12000字论文)
人工智能·python·深度学习·opencv·django·vue·springboot
明志数科6 分钟前
具身智能数据标注工具对比评测:6大平台横向测评
开发语言·python
杨超越luckly9 分钟前
HTML应用指南:利用GET请求获取智己汽车门店位置信息
python·arcgis·html·汽车·数据可视化
码界筑梦坊9 分钟前
132-基于Python的中老年体检数据可视化分析系统
开发语言·python·信息可视化·flask·毕业设计
大飞记Python12 分钟前
【2026更新】Python基础学习指南(AI版)——06函数
开发语言·人工智能·python
xing-xing14 分钟前
Anaconda学习总结
python
爱吃苹果的梨叔17 分钟前
2026分布式坐席系统推荐:指挥中心、调度中心、机房集中管控该怎么选?
python
liuhl091018 分钟前
Python 列表推导式
python