使用python调用和风天气API查询当前天气信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用python调用和风天气API查询当前天气信息相关的知识,希望对你有一定的参考价值。

和风天气网址:https://www.heweather.com/

注册后在控制台会有个人认证key

API帮助文档:https://www.heweather.com/documents/api/v5

#!/usr/bin/python
#-*-coding:utf-8-*-
#调用和风天气API查询当前天气信息
#2017/07/12

import json
import urllib2
import os

city=‘北京‘
#在和风天气注册后获得的key
key=‘your key‘

city_name={‘北京‘:‘beijing‘,‘上海‘:‘shanghai‘}
city_hname=city_name.get(city)

#获取当前天气信息
def get_json(city):
    url=‘https://free-api.heweather.com/v5/now?city=‘+city_hname+‘&key=‘+key
#    print url
    html=urllib2.urlopen(url).read()
    return html
#    print html
#    f=open(city_hname+‘.txt‘,‘w‘)
#    f.write(html)
#    f.close

#get_json(city)

#解析json数据
#data=open(city_hname+‘.txt‘).readline()
data=get_json(city)
hjson=json.loads(data)
basic_status=hjson[‘HeWeather5‘][0][‘basic‘]
nowtq_status=hjson[‘HeWeather5‘][0][‘now‘]
#print now
#print now_status[‘cond‘][‘txt‘].encode(‘utf-8‘)

#格式化输出城市信息
def basic(databasic):
    print ‘国家/城市名称:\t%s/%s‘%(databasic[‘cnty‘].encode(‘utf-8‘),databasic[‘city‘].encode(‘utf-8‘))
    print ‘信息更新时间:\t%s‘%(databasic[‘update‘][‘loc‘].encode(‘utf-8‘))

#basic(basic_status)

#格式化输出当前天气信息
def tqms(datanowtq):
    print ‘当前室外温度:\t%s度‘%(datanowtq[‘tmp‘].encode(‘utf-8‘))
    #print ‘体感温度:\t%s‘%(datanowtq[‘fl‘].encode(‘utf-8‘))
    print ‘天气描述:\t%s‘%(datanowtq[‘cond‘][‘txt‘].encode(‘utf-8‘))
    print ‘相对湿度(%):\t‘+‘%s%%‘%(datanowtq[‘hum‘].encode(‘utf-8‘))
    print ‘风力/风向:\t%s/%s级‘%(datanowtq[‘wind‘][‘dir‘].encode(‘utf-8‘),datanowtq[‘wind‘][‘sc‘].encode(‘utf-8‘))
    print ‘能见度(km):\t%skm‘%(datanowtq[‘vis‘].encode(‘utf-8‘))

basic(basic_status)
tqms(nowtq_status)

  

坑:

1.使用print格式化输出百分号的时候要使用%%,例:

>>> print %d%% % 23
23%

 

以上是关于使用python调用和风天气API查询当前天气信息的主要内容,如果未能解决你的问题,请参考以下文章

天气预报APP

python获取天气以及地理信息

和风api爬取天气预报数据

QQ邮件定时发送天气预报

微信小程序+和风天气完成天气预报

两种方法轻松简单解决和风天气Web API返回数据乱码问题