您的位置:首页 > 编程语言 > Python开发

天气API的调用

2017-11-26 17:58 274 查看
API store:http://www.avatardata.cn/

免费API自己申请,不需要身份证验证

贴代码

import requests
import json

wea_api_url = "http://api.avatardata.cn/Weather/Query"
my_wea_key = 你的密钥'

def init_wea_url(my_key,city_name):
url =  wea_api_url + "?key=%s&"%my_key + "cityname=%s"%city_name
return url

def one_step_of_day(data):
wea = data[1]
tmp = data[2]
wind = data[3] + data[4]
sun = data[5]
return wea,tmp,wind,sun

def print_day_info(data):
date = data['date']
week = data['week']
moon = data['nongli']
dawn = data['info']['dawn']
dawn_wea,dawn_tmp,dawn_wind,dawn_sun = one_step_of_day(dawn)
day = data['info']['day']
day_wea,day_tmp,day_wind,day_sun = one_step_of_day(day)
night = data['info']['night']
night_wea,night_tmp,night_wind,night_sun = one_step_of_day(night)
print("日期:%s"%date)
print("星期:%s"%week)
print("农历:%s"%moon)
print("凌晨:天气:%s,温度:%s,风力风向:%s,日出时间:%s"%(dawn_wea,dawn_tmp,dawn_wind,day_sun))
print("白天:天气:%s,温度:%s,风力风向:%s"%(day_wea,day_tmp,day_wind))
print("夜间:天气:%s,温度:%s,风力风向:%s,日落时间:%s"%(night_wea,night_tmp,night_wind,night_sun))
print("==========================================================")

def wea_main():
choice = input('''1.查看今日天气
2.查看未来5天天气\n''')
print("============================")
city = input("输入你要查看的城市:")
print("============================")
request_url = init_wea_url(my_wea_key,city)
response = requests.get(request_url).content
content = str(response,encoding = "utf-8")
total_result = json.loads(content)['result']
if choice == '1':
today = total_result['realtime']
date_time = today['date'] + " " + today['time']
moon_day = today['moon']
city = today['city_name']
wind = today['wind']['direct'] + today['wind']['power']
tmp = today['weather']['temperature']
info = today['weather']['info']
#获取生活信息
life = total_result['life']
kong_tiao = life['info']['kongtiao'][0] + life['info']['kongtiao'][1]
yun_dong = life['info']['yundong'][0] + life['info']['yundong'][1]
zi_wai_xian = life['info']['ziwaixian'][0] + life['info']['ziwaixian'][1]
gan_mao = life['info']['ganmao'][0] + life['info']['ganmao'][1]
wash_car = life['info']['xiche'][0] + life['info']['xiche'][1]
wear_clothes = life['info']['chuanyi'][0] + life['info']['chuanyi'][1]
#输出
print("当前时间:%s"%date_time)
print("阳历日期:%s"%moon_day)
print("查看城市:%s"%city)
print("当前温度:%s"%tmp)
print("当前天气:%s"%info)
print("风向风力:%s"%wind)
if total_result['pm25']:
#获取pm2.5信息
pm25 = total_result['pm25']
pm10 = pm25['pm25']['pm10']
pm2_5 = pm25['pm25']['pm25']
quality = pm25['pm25']['quality']
cur_pm = pm25['pm25']['curPm']
level = pm25['pm25']['level']
describe = pm25['pm25']['des']
print("============================")
print("当前PM值:%s"%cur_pm)
print("PM2.5 值:%s"%pm2_5)
print("PM10的值:%s"%pm10)
print("空气评级:%s"%level)
print("空气质量:%s"%quality)
print("综合概述:%s"%describe)
print("==========今日推荐==========")
print("空调:%s"%kong_tiao)
print("运动:%s"%yun_dong)
print("紫外线:%s"%zi_wai_xian)
print("感冒:%s"%gan_mao)
print("洗车:%s"%wash_car)
print("穿衣:%s"%wear_clothes)
elif choice == '2':
seven_days_weather = total_result['weather']
for day_weather in seven_days_weather:
print_day_info(day_weather)

wea_main()
没有打注释,但意思基本简单明了。

就是调用API对返回的json结果进行解析,

效果图:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  api json python 爬虫