我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python+xlwings如何制作天气预报表

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python+xlwings如何制作天气预报表

这篇文章主要为大家分析了Python+xlwings如何制作天气预报表的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Python+xlwings如何制作天气预报表”的知识吧。

前言

有趣的实战项目,用Python+xlwings模块制作天气预报表

让我们愉快地开始吧~

开发工具

Python版本: 3.6.4

相关模块:

requests模块;

xlwings模块;

json模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

既然是天气预报,那肯定是需要天气数据的。

找了一圈国内开放的天气API接口,大多都是需要注册,小F果断放弃。

腾讯倒是有个不错的,可惜接口信息不太完整,没有相应的数据说明。

Python+xlwings如何制作天气预报表

最终选择了一个国外的天气API接口

并没有提供国内所有的城市,目前只有10个城市。

所以要想城市多一些,腾讯的天气接口还是可以考虑的。

一共是有10种天气状态,并且提供了相关的天气状态图片,可以供我们使用。

Python+xlwings如何制作天气预报表

实现步骤

首先通过查询,获取城市的ID值

Python+xlwings如何制作天气预报表

然后根据ID值,再去获取对应的天气信息

Python+xlwings如何制作天气预报表

相关名称的中英文对照

# 天气--中英文名对照weather = {    'Snow': '雪',    'Sleet': '雨夹雪',    'Hail': '冰雹',    'Thunderstorm': '雷阵雨',    'Heavy Rain': '大雨',    'Light Rain': '小雨',    'Showers': '阵雨',    'Heavy Cloud': '阴',    'Light Cloud': '多云',    'Clear': '晴'}# 城市--中英文名对照citys = {    '北京': 'Beijing',    '成都': 'Chengdu',    '东莞': 'Dongguan',    '广州': 'Guangzhou',    '杭州': 'Hangzhou',    '香港': 'Hong Kong',    '上海': 'Shanghai',    '深圳': 'Shenzhen',    '天津': 'Tianjin',    '武汉': 'Wuhan'}

创建表格

安装xlwings库,并且使用命令行创建项目。

# 安装xlwingspip install xlwings -i https://mirror.baidu.com/pypi/simple/# 命令行运行xlwings quickstart weatherapp --standalone

如此便会生成两个文件,Python和Excel文件

Python+xlwings如何制作天气预报表

其中weatherapp.py的文件内容

import xlwings as xwdef main():    wb = xw.Book.caller()    sheet = wb.sheets[0]    if sheet["A1"].value == "Hello xlwings!":        sheet["A1"].value = "Bye xlwings!"    else:        sheet["A1"].value = "Hello xlwings!"if __name__ == "__main__":    xw.Book("weatherapp.xlsm").set_mock_caller()    main()

而Excel是什么内容也没有的,打开时会提示是否启用宏,选择是

然后需要将Excel的开发工具打开,后面会使用它插入一些元素

Python+xlwings如何制作天气预报表

上图为Mac电脑的设置,Windows电脑设置起来也很简单,具体可以百度。

通过点击开发工具选项,我们可以使用Excle的Visual Basic 编辑器(VBA),还能插入按钮(查询按钮)。

Python+xlwings如何制作天气预报表

然后我在表格中插入一个点击按钮

Python+xlwings如何制作天气预报表

选择宏名称为SampleCall,宏的位置为当前工作簿

Python+xlwings如何制作天气预报表

点击按钮1,A1单元格出现内容Hello xlwings!

Python+xlwings如何制作天气预报表

再次点击,A1单元格内容变为Bye xlwings!

Python+xlwings如何制作天气预报表

也就意味着,修改weatherapp.py文件的代码,即可实现Excel的交互操作。

下面对表格进行页面设计,毕竟要让表格好看起来

Python+xlwings如何制作天气预报表

设置表格的行高、列宽、背景色、固定文字内容等信息。

将单元格C3名称设置为city_name,插入6张太阳图片,排列在单元格C9~H9处,居中对齐,图片也改名为no.1~no.6。

修改weatherapp.py文件代码

import jsonfrom pathlib import Pathimport requestsimport xlwings as xw# 天气--中英文名对照weather = {    'Snow': '雪',    'Sleet': '雨夹雪',    'Hail': '冰雹',    'Thunderstorm': '雷阵雨',    'Heavy Rain': '大雨',    'Light Rain': '小雨',    'Showers': '阵雨',    'Heavy Cloud': '阴',    'Light Cloud': '多云',    'Clear': '晴'}# 城市--中英文名对照citys = {    '北京': 'Beijing',    '成都': 'Chengdu',    '东莞': 'Dongguan',    '广州': 'Guangzhou',    '杭州': 'Hangzhou',    '香港': 'Hong Kong',    '上海': 'Shanghai',    '深圳': 'Shenzhen',    '天津': 'Tianjin',    '武汉': 'Wuhan'}def main():    # 通过runpython从excel中调用python函数    wb = xw.Book.caller()    sht = wb.sheets[0]    # 从Excel中读取城市信息    city_name = citys[sht.range("city_name").value]    # 获取城市的ID值, 即woeid    URL_CITY = f"https://www.metaweather.com/api/location/search/?query={city_name}"    response_city = requests.request("GET", URL_CITY)    city_title = json.loads(response_city.text)[0]["title"]    city_id = json.loads(response_city.text)[0]["woeid"]    # 获取城市的天气信息    URL_WEATHER = f"https://www.metaweather.com/api/location/{city_id}/"    response_weather = requests.request("GET", URL_WEATHER)    weather_data = json.loads(response_weather.text)["consolidated_weather"]    # 创建空列表, 存储数据    min_temp = []    max_temp = []    weather_state_name = []    weather_state_abbr = []    applicable_date = []    # 处理数据    for index, day in enumerate(weather_data):        # 最低温度        min_temp.append(weather_data[index]["min_temp"])        # 最高温度        max_temp.append(weather_data[index]["max_temp"])        # 天气情况        weather_state_name.append(weather[weather_data[index]["weather_state_name"]])        # 天气情况缩写        weather_state_abbr.append(weather_data[index]["weather_state_abbr"])        # 日期        applicable_date.append(weather_data[index]["applicable_date"])    # 将获取到的值填充到Excel中    sht.range("C5").value = applicable_date    sht.range("C6").value = weather_state_name    sht.range("C7").value = max_temp    sht.range("C8").value = min_temp    sht.range("D3").value = city_title    # 创建列表    icon_names = ["no.1", "no.2", "no.3", "no.4", "no.5", "no.6"]    # 设置天气图片路径    icon_path = Path(__file__).parent / "images"    # 将天气情况与天气图片进行匹配,更新表格    for icon, abbr in zip(icon_names, weather_state_abbr):        image_path = Path(icon_path, abbr + ".png")        sht.pictures.add(image_path, name=icon, update=True)if __name__ == "__main__":    # 设置用于调试caller()的excel文件,可以直接在python里运行    xw.Book("weatherapp.xlsm").set_mock_caller()    main()

本文提供使用到的代码和数据,详见主页简介获取。

打开Excel表格,在城市栏输入10个城市中的一个,然后点击查询按钮,天气就会更新

Python+xlwings如何制作天气预报表

Python的优点有哪些

1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码格式的要求没有那么严格;2、Python属于开源的,所有人都可以看到源代码,并且可以被移植在许多平台上使用;3、Python面向对象,能够支持面向过程编程,也支持面向对象编程;4、Python是一种解释性语言,Python写的程序不需要编译成二进制代码,可以直接从源代码运行程序;5、Python功能强大,拥有的模块众多,基本能够实现所有的常见功能。

关于“Python+xlwings如何制作天气预报表”就介绍到这了,更多相关内容可以搜索编程网以前的文章,希望能够帮助大家答疑解惑,请多多支持编程网网站!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python+xlwings如何制作天气预报表

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python+xlwings如何制作天气预报表

这篇文章主要为大家分析了Python+xlwings如何制作天气预报表的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Python+xlwings如何制作天气
2023-06-28

python如何制作的天气预报小工具

这篇文章主要介绍python如何制作的天气预报小工具,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一.准备工作不需要准备。二.预览1.启动启动以后自动定位所在城市,展示定位城市的天气。2.添加城市3.展示多个城市天气
2023-06-15

python制作的天气预报小工具(gui界面)

目录一.准备工作二.预览1.启动2.添加城市3.展示多个城市天气三.设计流程1.获取城市天气信息过程四.源代码1.Weather_Tool-v1.0.py2.Weather_Spider.py五.总结一.准备工作不需要准备。 二.预览1.启
2022-06-02

python如何实现将天气预报可视化

这篇文章将为大家详细讲解有关python如何实现将天气预报可视化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。结果展示其中:红线代表当天最高气温,蓝线代表最低气温,最高气温点上的标注为当天的天气情况。如果
2023-06-22

win11天气预报栏如何打开

这篇文章主要讲解了“win11天气预报栏如何打开”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win11天气预报栏如何打开”吧!1、首先右键任务栏空白处,打开“任务栏设置”。2、接着打开其中
2023-07-02

Win8 RTM版中只有3天天气预报 如何找回7天预报

万众期待的Win8 RTM简体中文版终于在一片期待声中面世了,然而试用后有网友发现,简中版的天气预报似乎出了点问题。原本功能强大的7天天气预报一下缩短到了3天,特色十足的实时气温也不知跑哪里去了。难道是微软和咱十三亿网友开了个大玩笑?抑或是
2022-06-04

如何编写asp配合AJAX天气预报的webService

这篇文章主要讲解了“如何编写asp配合AJAX天气预报的webService”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何编写asp配合AJAX天气预报的webService”吧!代码如
2023-06-09

Python如何爬取未来7天天气预报并存储在excel文档中

这期内容当中小编将会给大家带来有关Python如何爬取未来7天天气预报并存储在excel文档中,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。想知道你家乡未来7天气是如何,是好是坏?刮风还是下雨?别省得每天
2023-06-02

Linux 命令行下如何实现浏览天气预报

这篇文章主要介绍“Linux 命令行下如何实现浏览天气预报”,在日常操作中,相信很多人在Linux 命令行下如何实现浏览天气预报问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux 命令行下如何实现浏览天
2023-06-12

如何使用python实现定时报天气

小编给大家分享一下如何使用python实现定时报天气,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.分析爬取目标这里就不爬取股票的信息,我来爬一个天气预报的信息
2023-06-25

怎么利用Python制作一个简单的天气播报系统

本篇内容介绍了“怎么利用Python制作一个简单的天气播报系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!工具python3.7pycha
2023-06-30

如何使用golang的Websocket开发实时天气预报功能

如何使用Golang的WebSocket开发实时天气预报功能引言:天气预报是人们日常生活中的重要信息之一,实时的天气预报能够帮助人们做出更好的生活规划。本文将介绍如何使用Golang的WebSocket开发一个实时的天气预报功能,并提供具体
如何使用golang的Websocket开发实时天气预报功能
2023-12-18

Python如何制作可视化报表

这篇文章给大家分享的是有关Python如何制作可视化报表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。可视化报表效果如下,水果销售情况一览~Dash是基于Plotly搭建的Dashbord框架,支持Python、
2023-06-29

如何用PHP实现微信小程序的天气预报功能?

如何用PHP实现微信小程序的天气预报功能?随着微信小程序的流行,越来越多的开发者开始尝试在小程序中添加实用的功能,比如天气预报。在本文中,我们将学习如何使用PHP来实现微信小程序的天气预报功能,并提供代码示例。在开始之前,我们需要确保已经申
2023-10-27

PHP+AJAX如何实现无刷新就能返回天气预报数据

本篇内容介绍了“PHP+AJAX如何实现无刷新就能返回天气预报数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!用php来写一个天气预报的模
2023-06-08

如何解决Win7桌面天气预报小工具不能用的问题

Windows 7 系统中自带有9个小工具,如 CPU 仪表盘、天气、时钟和货币等等,如图所示:   Windows 7自带桌面小工具   通过这些小工具,您可以轻松查看即时信息、访问常用工具。www.cppcns.com例如,我们可以使用
2023-05-25

如何解决Win10系统天气应用无法显示预报的问题

这篇文章主要介绍如何解决Win10系统天气应用无法显示预报的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!近日,微软发布了Win10一周年正式版(Win10 1607),但不少用户反馈升级Win10 1607一周
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录