python读取xml标签值_如何实现python在xml标签之间查找值?

本文介绍了如何使用Python从XML文件中提取标签值,通过一个简单的函数getWeather演示了从XML响应中解析天气数据的过程,并展示了如何访问和展示解析后的数据。
摘要由CSDN通过智能技术生成

好吧,这里是 – 针对您的特定情况的非完整解析器解决方案:

import urllib

def getWeather(city):

''' given city name or postal code,

return dictionary with current weather conditions

'''

url = 'http://www.google.com/ig/api?weather='

try:

f = urllib.urlopen(url + urllib.quote(city))

except:

return "Error opening url"

s = f.read().replace('\r','').replace('\n','')

if '

return "Problem retreaving weather (invalid city?)"

weather = s.split('')[0] \

.split('')[-1] \

.strip('>')

wdict = dict(i.split(' data="') for i in weather.split('"/>

return wdict

和使用的例子:

>>> weather = getWeather('94043')

>>> weather

{'temp_f': '67', 'temp_c': '19', 'humidity': 'Humidity: 61%', 'wind_condition': 'Wind: N at 21 mph', 'condition': 'Sunny', 'icon': '/ig/images/weather/sunny.gif'}

>>> weather['humidity']

'Humidity: 61%'

>>> print '%(condition)s\nTemperature %(temp_c)s C (%(temp_f)s F)\n%(humidity)s\n%(wind_condition)s' % weather

Sunny

Temperature 19 C (67 F)

Humidity: 61%

Wind: N at 21 mph

PS.请注意,谷歌输出格式的一个相当微不足道的变化将打破这一点 – 比如他们是在标签或属性之间添加额外的空格或标签.他们避免减少http响应的大小.但如果他们这样做了,我们必须熟悉正则表达式和re.split()

PPS. str.split(sep)的工作方式在文档中有解释,这里有一段摘录:使用sep作为分隔符字符串,返回字符串中单词的列表. … sep参数可以包含多个字符(例如,’1<><>>>’>’<>‘)返回[‘1′,’2′,’3’] ).所以’text1< tag> text2< / tag> text3′.split(‘< / tag>‘)给我们[‘text1< tag> text2′,’text3′],然后[0]选择第一个元素’ text1< tag> text2′,然后我们拆分并选取’text2′,其中包含我们感兴趣的数据.真的非常陈词滥调.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值