【Python】天気照会
Linuxをよく使いますが、天気が見たくなったら使ってみましょう.
root@ubuntu:/# weather shanghai
root@ubuntu:/# weather shanghai
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys,urllib,urllib2,json
reload(sys)
sys.setdefaultencoding('utf-8')
class Weather:
url = 'http://apis.baidu.com/apistore/weatherservice/weather?citypinyin='
resp = None
recvData = None
def __init__(self,argv):
if len(argv) == 1:
self.url = self.url + argv[1]
self.downloadInfo()
else:
print 'weather '
def downloadInfo(self):
req = urllib2.Request(self.url)
req.add_header("apikey","b59a4d48d3032c99585b71e13a96da86")
respTemp = urllib2.urlopen(req)
self.resp = respTemp.read()
self.analyzeData()
def printData(self,data):
print '\033[1;34m------------weather--------------- \033[0m'
print ' :' + data['city']
print 'code:' + data['citycode']
print ' :' + data['date']
print ' :' + data['time']
print ' :' + data['altitude']
print ' :' + data['weather']
print ' :' + data['temp']
print ' :' + data.get('l_tmp')
print ' :' + data.get('h_tmp')
print ' :' + data['WD']
print ' :' + data['WS']
print ' :' + data['sunrise']
print ' :' + data['sunset']
def analyzeData(self):
result = json.loads(self.resp)
errNum = result['errNum']
errMsg = result['errMsg']
self.recvData = result['retData']
if errMsg == 'success':
self.printData(self.recvData)
Weather(sys.argv)