首页 > python教程

python小程序基于Jupyter实现天气查询的方法

时间:2020-07-26 python教程 查看: 1203

天气查询python小程序第0步:导入工具库第一步:生成查询天气的url链接第二步:访问url链接,解析服务器返回的json数据,变成python的字典数据第三步:对字典进行索引,获取气温、风速、风向等天气信息第四步:遍历forecast列表中的五个元素,打印天气信息完整Python代码
本案例是一个非常有趣的python小程序,调用网络API查询指定城市的天气,并打印输出天气信息。

你将学到以下技能:

向网络API发起请求,解析和处理服务器返回的json数据,可以迁移到各种各样的API中,如PM2.5查询,道路拥堵查询,自然灾害查询等。
python字典数据类型的常用操作
以下的代码运行在jupyter notebook的开发环境中,这是python数据分析、机器学习、人工智能开发最常用的开发界面,因为可以非常方便的撰写博客、插入图片和数学公式,并输出代码运行的中间结果,强烈建议你学习如何使用jupyter notebook。

第0步:导入工具库

python import urllib.request import gzip

第一步:生成查询天气的url链接

```python
city_name = '上海'

将城市的中文名字编码成utf-8字符

urllib.parse.quote(city_name)

将编码后的城市名拼接在原始链接的后面

url = 'http://wthrcdn.etouch.cn/weather_mini?city=' + urllib.parse.quote(city_name)```

第二步:访问url链接,解析服务器返回的json数据,变成python的字典数据

python weather_data = urllib.request.urlopen(url).read()

```python

访问url链接,获取字节串数据

weather_data```

```python

将字节串解码为unicode编码

weather_data = gzip.decompress(weather_data)```

python weather_data

```python

将unicode编码解码为utf-8编码,显示中文

weather_data = weather_data.decode('utf-8')```

python weather_data

```python

将字符串两端的引号去掉,变成python中的字典数据

weather_dict = eval(weather_data)```

python weather_dict

python type(weather_dict)

第三步:对字典进行索引,获取气温、风速、风向等天气信息

python weather_dict

python weather_dict['data']['yesterday']['high']

python print('您查询的城市:',weather_dict['data']['city']) print('--------------------------') print('今天的天气') print('温度',weather_dict['data']['wendu']) print('感冒指数',weather_dict['data']['ganmao']) print('--------------------------') print('昨天的天气') print('昨天:',weather_dict['data']['yesterday']['date']) print('天气:',weather_dict['data']['yesterday']['type']) print('最高气温:',weather_dict['data']['yesterday']['high']) print('最低气温:',weather_dict['data']['yesterday']['low']) print('风向:',weather_dict['data']['yesterday']['fx']) print('风力:',weather_dict['data']['yesterday']['fl'][-5:-3]) print('--------------------------')

第四步:遍历forecast列表中的五个元素,打印天气信息

weather_dict[‘data'][‘forecast']是一个包含五个元素的列表,每一个元素都是一个字典。

python weather_dict['data']['forecast']

python for each in weather_dict['data']['forecast']: print('日期',each['date']) print('天气',each['type']) print(each['high']) print(each['low']) print('风向',each['fengxiang']) print('风力:',each['fengli'][-5:-3]) print('--------------------------')

完整Python代码

```python

导入工具库

import urllib.request import gzip

第一步:生成查询天气的url链接

city_name = input('请输入要查询的城市名称:')

将城市的中文名字编码成utf-8字符

urllib.parse.quote(city_name)

生成完整url链接

url = 'http://wthrcdn.etouch.cn/weather_mini?city='+urllib.parse.quote(city_name)

第二步:访问url链接,解析服务器返回的json数据,变成python的字典数据

获取服务器返回的json字节串数据

weather_data = urllib.request.urlopen(url).read()

将字节串数据解码为unicode中的utf-8数据

weather_data = gzip.decompress(weather_data).decode('utf-8')

将json数据转为python的字典数据

weather_dict = eval(weather_data) if weather_dict.get('desc') == 'invilad-citykey': print('您输入的城市未收录')

第三步:对字典进行索引,获取气温、风速、风向等天气信息

print('您查询的城市:',weather_dict['data']['city']) print('--------------------------') print('今天的天气') print('温度',weather_dict['data']['wendu']) print('感冒指数',weather_dict['data']['ganmao']) print('--------------------------') print('昨天的天气') print('昨天:',weather_dict['data']['yesterday']['date']) print('天气:',weather_dict['data']['yesterday']['type']) print('最高气温:',weather_dict['data']['yesterday']['high']) print('最低气温:',weather_dict['data']['yesterday']['low']) print('风向:',weather_dict['data']['yesterday']['fx']) print('风力:',weather_dict['data']['yesterday']['fl'][-5:-3]) print('--------------------------')

第四步:遍历forecast列表中的五个元素,打印天气信息

for each in weather_dict['data']['forecast']: print('日期',each['date']) print('天气',each['type']) print(each['high']) print(each['low']) print('风向',each['fengxiang']) print('风力:',each['fengli'][-5:-3]) print('--------------------------')```

到此这篇关于python小程序基于Jupyter实现天气查询的方法的文章就介绍到这了,更多相关python Jupyter 天气查询内容请搜索python博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持python博客!

展开全文
上一篇:Python计算指定日期是今年的第几天(三种方法)
下一篇:python数据库编程 ODBC方式实现通讯录
输入字:
相关知识
Python 实现图片色彩转换案例

我们在看动漫、影视作品中,当人物在回忆过程中,体现出来的画面一般都是黑白或者褐色的。本文将提供将图片色彩转为黑白或者褐色风格的案例详解,感兴趣的小伙伴可以了解一下。

python初学定义函数

这篇文章主要为大家介绍了python的定义函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助,希望能够给你带来帮助

图文详解Python如何导入自己编写的py文件

有时候自己写了一个py文件,想要把它导入到另一个py文件里面,所以下面这篇文章主要给大家介绍了关于Python如何导入自己编写的py文件的相关资料,需要的朋友可以参考下

python二分法查找实例代码

二分算法是一种效率比较高的查找算法,其输入的是一个有序的元素列表,如果查找元素包含在列表中,二分查找返回其位置,否则返回NONE,下面这篇文章主要给大家介绍了关于python二分法查找的相关资料,需要的朋友可以参考下