# api aplication programming interface
# 不通軟件不同系統(tǒng)之間的功能相互調(diào)用
# json是其中重要的一種數(shù)據(jù)交換形式
# 定制天氣預(yù)報(bào) https://www.sojson.com/open/api/weather/json.shtml?city=
# http://jsonviewer.stack.hu/
# https://www.sojson.com/open/api/weather/json.shtml

?city=%E5%8C%97%E4%BA%AC
import requests # pip install requests 請求  網(wǎng)上api的調(diào)用形式
url = 'https://www.sojson.com/open/api/weather/json.shtml?city='
city = '北京'
ret = requests.get(url + city) # 請求的對象
print(ret.json())
{'date': '20180804', 'message': 'Success !', 'status': 200, 'city': '北京', 'count': 9, 'data': {'shidu': '70%', 'pm25': 44.0, 'pm10': 78.0, 'quality': '良', 'wendu': '30', 'ganmao': '極少數(shù)敏感人群應(yīng)減少戶外活動', 'yesterday': {'date': '03日星期五', 'sunrise': '05:13', 'high': '高溫 36.0℃', 'low': '低溫 26.0℃', 'sunset': '19:27', 'aqi': 107.0, 'fx': '南風(fēng)', 'fl': '<3級', 'type': '晴', 'notice': '愿你擁有比陽光明媚的心情'}, 'forecast': [{'date': '04日星期六', 'sunrise': '05:14', 'high': '高溫 36.0℃', 'low': '低溫 27.0℃', 'sunset': '19:26', 'aqi': 97.0, 'fx': '南風(fēng)', 'fl': '<3級', 'type': '晴', 'notice': '愿你擁有比陽光明媚的心情'}, {'date': '05日星期日', 'sunrise': '05:15', 'high': '高溫 35.0℃', 'low': '低溫 25.0℃', 'sunset': '19:25', 'aqi': 103.0, 'fx': '東南風(fēng)', 'fl': '<3級', 'type': '雷陣雨', 'notice': '帶好雨具,別在樹下躲雨'}, {'date': '06日星期一', 'sunrise': '05:16', 'high': '高溫 31.0℃', 'low': '低溫 25.0℃', 'sunset': '19:24', 'aqi': 97.0, 'fx': '南風(fēng)', 'fl': '<3級', 'type': '雷陣雨', 'notice': '帶好雨具,別在樹下躲雨'}, {'date': '07日星期二', 'sunrise': '05:17', 'high': '高溫 31.0℃', 'low': '低溫 25.0℃', 'sunset': '19:22', 'aqi': 113.0, 'fx': '西南風(fēng)', 'fl': '<3級', 'type': '雷陣雨', 'notice': '帶好雨具,別在樹下躲雨'}, {'date': '08日星期三', 'sunrise': '05:18', 'high': '高溫 30.0℃', 'low': '低溫 24.0℃', 'sunset': '19:21', 'aqi': 68.0, 'fx': '東南風(fēng)', 'fl': '<3級', 'type': '雷陣雨', 'notice': '帶好雨具,別在樹下躲雨'}]}}
# 象字典一樣取值
d = ret.json()
# print(d['status'])
# print(d['city'])
# print(d['data'])
# print(d['data']['yesterday'])

def hot_weather(data):
    """定制化天氣預(yù)報(bào)"""
    try:
       weather_list = data['data']['forecast']
    #     print(weather_list)
        for day in weather_list:
            print(day['date'], day['high'], day['low'], day['sunset'], day['notice'])
    except Exception as e:
        print(e)
hot_weather(d)
04日星期六 高溫 36.0℃ 低溫 27.0℃ 19:26 愿你擁有比陽光明媚的心情
05日星期日 高溫 35.0℃ 低溫 25.0℃ 19:25 帶好雨具,別在樹下躲雨
06日星期一 高溫 31.0℃ 低溫 25.0℃ 19:24 帶好雨具,別在樹下躲雨
07日星期二 高溫 31.0℃ 低溫 25.0℃ 19:22 帶好雨具,別在樹下躲雨
08日星期三 高溫 30.0℃ 低溫 24.0℃ 19:21 帶好雨具,別在樹下躲雨
%cd D:\全棧\json api
d = ret.json()
import json
with open('weather.json', 'w') as f:
    json.dump(d, f)
D:\全棧\json api