[Python实战]Python制作天气查询软件_python天气情况监测

72 阅读6分钟

def city2id(file): code_dict = {} key = 'City_CN' value = 'City_ID_map' for k, v in zip(file[key], file[value]): code_dict[k] = v return code_dict code_dict = city2id(file)

将所得的字典数据存储为 txt 文件

import json filename = 'city_code.txt' with open(filename, 'w') as f: json.dump(code_dict, f)


将字典存储为 txt 文件后,以后我们只需读取文件,再获取字典:



with open(filename, 'r') as f: text = json.load(f)


如果不想费工夫处理这些数据,可以直接使用文末提供的 city\_code.txt 文件。


### Ui 设计


使用 Qt Designer,我们不难设计出以下界面:  
 ![在这里插入图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/2a2314bc04ca49819b76bb5387300eeb~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=atY1%2BhKEExRRL6K1K%2FW0Rwwq5Xc%3D)  
 如果不想设计这些界面,可以直接导入我提供的 Ui\_weather.py 文件。


### 主体逻辑:


我们这次使用的 api 接口为:‘http://wthrcdn.etouch.cn/weather\_mini?citykey={code}’,code 就是之前处理过的城市代码,比如常州的城市代码为:101191101。替换掉变量 code ,网站返回给我们一段 json 格式的文件:  
 ![在这里插入图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/6a89cf9402f340efbb4a87e160bd6298~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=NP9mqA4hgDLR0sCuyr9S9ndqTaw%3D)  
 根据这段 json 语句,我们很容易提取需要的信息:



天气情况

data = info_json['data'] city = f"城市:{data['city']}\n" today = data['forecast'][0] date = f"日期:{today['date']}\n" now = f"实时温度:{data['wendu']}度\n" temperature = f"温度:{today['high']} {today['low']}\n" fengxiang = f"风向:{today['fengxiang']}\n" type = f"天气:{today['type']}\n" tips = f"贴士:{data['ganmao']}\n" 当然,我们首先要使用 requests,get 方法,来获取这段 json 代码。

def query_weather(code): # 模板网页 html = f'wthrcdn.etouch.cn/weather_min…'

# 向网页发起请求
try:
    info = requests.get(html)
    info.encoding = 'utf-8'
# 捕获 ConnectinError 异常
except requests.ConnectionError:
    raise 



# 将获取的数据转换为 json 格式
try:
    info_json = info.json()
# 转换失败提示无法查询
except JSONDecodeError:
    return '无法查询'

下面我们介绍下本文用到的控件方法:



将 textEdit 设置为只读模式

self.textEdit.setReadOnly(True)

将鼠标焦点放在 lineEdit 编辑栏里

self.lineEdit.setFocus()

获取 lineEdit 中的文本

city = self.lineEdit.text()

设置文本

self.textEdit.setText(info)

清空文本

self.lineEdit.clear()


为查询按钮设置快捷键:



def keyPressEvent(self, e):

设置快捷键

if e.key() == Qt.Key_Return:
    self.queryWeather()

最后,我们可以使用 Pyinstaller -w weather.py 打包应用程序,但是要记得打包完,将 city\_code.txt 复制到 dist/weather 文件夹下,否则程序无法运行。


## 关于Python技术储备


学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!


**朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】**。



> 
> 👉[[[CSDN大礼包:《python安装包&全套学习资料》免费分享]]]( )(**安全链接,放心点击**)
> 
> 
> 



![](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/bed67918b5be4592b3d07bf4d41c3422~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=sdSQlrmtRbyfSZ6lTF4nPajAJ7E%3D)



### 一、Python所有方向的学习路线


Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。  
 ![在这里插入图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/15f7a6db9a7d44abaab27198d0e72bd1~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=cN3CGZSh43T6z9oWgYrSOwrRSoU%3D)


### 二、Python必备开发工具


![在这里插入图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/36f0838d42ba40c8a300fd0f2702b31e~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=GfaR8YI3aBBQXneOtLDs2MBBtGs%3D)


### 三、精品Python学习书籍


当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。  
 ![在这里插入图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/aa3209a8658e420285544295b0a24beb~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=yafLWYpP5BNo3u8tF1qtD6rM73M%3D)


### 四、Python视频合集


观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。  
 ![在这里插入图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/55c92df86db94ddea77a74a6ba5d374a~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=xTonx04jNtTd4J3kQ5enpoDC37c%3D)


### 五、实战案例


光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。![在这里插入图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/e78a9867dee445d0a68eb92223306d7f~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=ltDL7goWpZhpavwXHSc2BaKQwCI%3D)


### 六、Python练习题


检查学习结果。  
 ![在这里插入图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/74179f4c67b441f0996f1d7417f17fbb~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=kldqk7oa2XBmrQr%2BKl0IE7o9baY%3D)


### 七、面试资料


### 最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

#### 👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

![](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/44c0dca04bed4222be7ca80fa1deae7f~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=DNAmoDT90vJVNzQuffXvk5mmqkQ%3D)

#### 👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

![](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/aca204ece93b4ec69d9aed4fa72ddacf~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=evFhBGHHobJjtbR5LPsrOkRP%2BOA%3D)



#### 👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

![](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/be3758b650734107bf72e04f12d16bc1~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=PvPwXLGQyBFhN5Hk%2B3nnznKDYgE%3D)



#### 👉实战案例👈



学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。



因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

![](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/158388cfeafd4e28af002f415ecae5a4~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=NoRGljkOws5EGJR%2FDJOWgPaLsmo%3D)



#### 👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

![](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/11564f767d3a44c7a580deef5a0f1255~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616602&x-signature=%2BrsIWhLPMwol8LpibhA%2Fg%2BC5edc%3D)



**了解详情:https://docs.qq.com/doc/DSnl3ZGlhT1RDaVhV**