1. 程式人生 > >天氣信息+叠代器

天氣信息+叠代器

lec ini ati pri json top .get bsp dex

從網址中抓取城市的天氣信息,實現可叠代對象和叠代器對象,從而方便的進行一組城市的天氣信息查詢

 1 # encoding=utf-8
 2 import requests
 3 # *************************************************************************************
 4 # 實現從網站中抓取天氣信息
 5 # def getWeather(city):
 6 #     r = requests.get(u‘http://wthrcdn.etouch.cn/weather_mini?city=‘ + city)
7 # data = r.json()[‘data‘][‘forecast‘][0] 8 # return ‘%s:%s,%s‘ % (city,data[‘low‘],data[‘high‘]) 9 10 # print getWeather(u‘北京‘) 11 # print getWeather(u‘沈陽‘) 12 # *************************************************************************************** 13 from collections import Iterable,Iterator
14 15 class WeatherIterator(Iterator): 16 def __init__(self,cities): 17 self.cities = cities 18 self.index = 0 19 20 def getWeather(self,city): 21 r = requests.get(uhttp://wthrcdn.etouch.cn/weather_mini?city= + city) 22 data = r.json()[data][forecast][0]
23 return %s:%s,%s % (city,data[low],data[high]) 24 25 def next(self): 26 if self.index == len(self.cities): 27 raise StopIteration 28 city = self.cities[self.index] 29 self.index += 1 30 return self.getWeather(city) 31 32 class WeatherIterable(Iterable): 33 def __init__(self,cities): 34 self.cities = cities 35 36 def __iter__(self): 37 return WeatherIterator(self.cities) 38 39 40 41 for x in WeatherIterable([u北京,u上海,u沈陽,u鄭州]): 42 print x

天氣信息+叠代器