首页 > 编程语言 >Python开发实例(十二)天气预报应用:通过API获取天气数据,让用户输入城市并显示天气情况

Python开发实例(十二)天气预报应用:通过API获取天气数据,让用户输入城市并显示天气情况

时间:2023-09-06 15:37:41浏览次数:42  
标签:city api Python 天气情况 API weather requests data

在这个实例中,我们将创建一个天气预报应用,使用Python的requests库来获取天气数据,并让用户输入城市名来显示该城市的天气情况。

首先,你需要申请一个天气数据的API密钥。在这个示例中,我们将使用OpenWeatherMap提供的API,你可以在 https://openweathermap.org/ 上注册并获取免费的API密钥。

请确保你已经安装了requests库。如果没有安装,可以通过以下命令来安装:

pip install requests

下面是天气预报应用的Python程序:

import requests

def get_weather_data(api_key, city):
    base_url = "http://api.openweathermap.org/data/2.5/weather"
    params = {
        "q": city,
        "appid": api_key,
        "units": "metric"  # 使用摄氏度显示温度
    }

    try:
        response = requests.get(base_url, params=params)
        response.raise_for_status()
        return response.json()
    except requests.exceptions.RequestException as e:
        print(f"天气数据获取失败: {e}")
        return None

def display_weather_data(weather_data, city):
    if "main" in weather_data and "temp" in weather_data["main"]:
        temperature = weather_data["main"]["temp"]
        description = weather_data["weather"][0]["description"]
        print(f"{city}的天气情况:")
        print(f"温度:{temperature}°C")
        print(f"天气描述:{description}")
    else:
        print(f"无法获取{city}的天气信息。")

if __name__ == "__main__":
    api_key = "YOUR_API_KEY"  # 替换为你的OpenWeatherMap API密钥
    city = input("请输入城市名:")

    weather_data = get_weather_data(api_key, city)
    if weather_data:
        display_weather_data(weather_data, city)

在上述代码中,我们定义了两个函数:get_weather_data用于通过API获取天气数据,display_weather_data用于显示天气信息。

你需要将api_key变量替换为你的OpenWeatherMap API密钥。然后,用户可以输入城市名,并通过API获取该城市的天气数据。最后,程序将显示该城市的温度和天气描述。

运行程序后,你就可以通过输入城市名来获取该城市的天气预报。希望这个天气预报应用对你有帮助!

标签:city,api,Python,天气情况,API,weather,requests,data
From: https://blog.51cto.com/u_16160172/7387561

相关文章

  • API NEWS | Jetpack WordPress插件存在API漏洞
    欢迎大家围观小阑精心整理的API安全最新资讯,在这里你能看到最专业、最前沿的API安全技术和产业资讯,我们提供关于全球API安全资讯与信息安全深度观察。本周,我们带来的分享如下:一篇关于JetpackWordPress插件存在API漏洞的文章一篇关于如何应对不断增长的API安全漏洞的文章一篇关于AP......
  • 软件测试|Python对JSON的解析和创建详解
    简介JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,已经成为当今互联网应用中广泛使用的数据格式之一。Python提供了内置的模块来解析和创建JSON数据,使得在Python中处理JSON变得非常简单。本文将详细介绍Python对JSON的解析和创建过程,并提供示例代码来帮助大家更好地理......
  • 执行python程序的两种方式
    执行python程序的两种方式方式一:交互式直接win+r打开cmd命令窗口,在里面输入python.exe即可运行此程序直接在命令行窗口里面就能运行python的代码,例如:print(“helloworld!”)优点:运行一句执行一句缺点:关闭即消失方式一:命令行式直接在桌面上新建一个文本文件,在文本文件中写......
  • Revit API创建几何实体Solid并找到与之相交的元素
    几何实体的创建方法之一:构成封闭底面,指定拉伸方向与拉伸高度。GeometryCreationUtilities//自创几何实体相交法[TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)]publicclassFindIntersectWallsByGeometry:IExternalCommand{publicResult......
  • python-docx:在保持秩序的同时循环访问段落、表格和图像
    defiter_block_items(parent):"""Generateareferencetoeachparagraphandtablechildwithin*parent*,indocumentorder.EachreturnedvalueisaninstanceofeitherTableorParagraph.*parent*wouldmostcommonlybeareferencetoam......
  • python+pytest+yam接口自动化
    分层设计项目下创建api、case、data、common(utils)目录:api下存放封装好的接口,case下放编写的测试用例,data下放测试数据,common下放公共操作(像连接数据库,读取yaml文件等)api下封装的登录接口:  case下对登录写的测试用例:用例设计的原则(pytest怎么去找的用例):文件名以test_*.py......
  • python3中所有保留字(关键字)
     Python3中的保留字(关键字)|AmosCloudWiki   ......
  • Python之断点续传下载及进度显示
    Python之断点续传下载及进度显示某日,因工作需要下载大量OSGB数据,下载链接来源于一个csv文件,于是解析了csv文件然后下载。为了提高下载效率及进度显示,写了一份脚本。环境python3.7requestscsv过程解析csv废话不多说,先上代码:deffetch_download_url(source):res......
  • 使用python自动根据数据库的成品重量编写一个ppt并保存在"d:\test.ppt"
    要使用Python自动创建一个PPT并根据数据库中的成品重量生成内容,你可以使用Python的`python-pptx`库来实现。首先,你需要确保已经安装了这个库。你可以使用以下命令安装它:```pythonpipinstallpython-pptx```接下来,你可以按照以下步骤创建一个Python脚本来实现你的需求:```py......
  • Python 设置环境变量方法
    Python中的os模块Python中的os模块提供了很多与操作系统相关的功能。其中就包括设置环境变量的方法,即setenv()方法。使用os.setenv()方法设置环境变量importosos.setenv('VAR_NAME','VAR_VALUE')其中,VAR_NAME是环境变量的名称,VAR_VALUE是环境变量的值。这样我们就可以使用......