📅  最后修改于: 2020-05-13 13:14:55             🧑  作者: Mango
openweathermap
是一项给Web服务和移动应用程序的开发人员提供天气数据(包括当前天气数据,预报和历史数据)的服务。
它提供了一个具有JSON,XML和HTML端点以及有限的免费使用层的API。每分钟访问60次以上,则需要每月40美元起的付费订阅。访问历史数据需要每月150美元起的订阅。用户可以请求当前的天气信息,扩展的预报和图形地图(显示云量,风速,压力和降水量)。
要使用当前的天气数据API,必须使用API密钥,可以在此处获取 。
注意:用户需要在openweathermap.org上创建一个帐户,然后才可以使用API。
所需模块:
requests
json
下面是实现:
# Python程序使用openweathermap API查找任何城市的当前天气详细信息
# 导入所需的模块
import requests, json
# 在此处输入您的API密钥
api_key = "Your_API_Key"
# base_url变量来存储URL
base_url = "http://api.openweathermap.org/data/2.5/weather?"
# 输入城市名称
city_name = input("Enter city name : ")
# complete_url变量,用于存储完整的URL地址
complete_url = base_url + "appid=" + api_key + "&q=" + city_name
# 请求模块的get方法返回响应对象
response = requests.get(complete_url)
# 响应对象的JSON方法将JSON格式的数据转换为Python格式的数据
x = response.json()
# 现在x包含嵌套字典列表
# 检查“ cod"键的值等于“ 404",表示找到了城市,否则未找到城市
if x["cod"] != "404":
# 将“主"键的值存储在变量y中
y = x["main"]
# 存储与y的“ temp"键对应的值
current_temperature = y["temp"]
# 存储与y的“pressure"键对应的值
current_pressure = y["pressure"]
# 存储与y的“humidity"键对应的值
current_humidiy = y["humidity"]
# 将“weather"键的值存储在变量z中
z = x["weather"]
# 将与“description"键对应的值存储在z的第0个索引处
weather_description = z[0]["description"]
# 打印以下值
print(" Temperature (in kelvin unit) = " +
str(current_temperature) +
"\n atmospheric pressure (in hPa unit) = " +
str(current_pressure) +
"\n humidity (in percentage) = " +
str(current_humidiy) +
"\n description = " +
str(weather_description))
else:
print(" City Not Found ")
输出:
Enter city name : Delhi
Temperature (in kelvin unit) = 312.15
atmospheric pressure (in hPa unit) = 996
humidity (in percentage) = 40
description = haze