【Python】天気照会


Linuxをよく使いますが、天気が見たくなったら使ってみましょう.
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)

【Python】 天气查询_第1张图片