关于python3.x:Python实用案例Python脚本实现天气查询应用提醒她注意保暖

42次阅读

共计 2392 个字符,预计需要花费 6 分钟才能阅读完成。

往期回顾

Python 实现主动监测 Github 我的项目并关上网页

Python 实现文件主动归类

Python 实现帮你抉择双色球号码

Python 实现每日更换“必应图片”为“桌面壁纸”

Python 实现批量加水印

Python 实现破译 zip 压缩包

Python 实现批量下载百度图片

前言

明天咱们就利用 Python 脚本实现天气查问利用吧。间接开整~

成果预览:

一、获取天气信息

应用 python 获取天气有两种形式。

1、是通过爬虫的形式获取天气预报网站的 HTML 页面,而后应用 xpath 或者 bs4 解析 HTML 界面的内容。

2、另一种形式是依据天气预报网站提供的 API,间接获取结构化数据,省去了解析 HTML 页面的步骤。

本例应用的是第二种形式,申请地址为:

http://wthrcdn.etouch.cn/weather_mini?citykey= 城市代码 

局部城市代码对应:

北京 101010100
天津 101030100
上海 101020100

浏览器返回的天津气温状况如下,该信息其实就是一个 JSON 字符串,格式化之后的样子如下所示:

{
    "data": {
        "yesterday": {
            "date": "1 日星期五",
            "high": "低温 17℃",
            "fx": "东北风",
            "low": "高温 8℃",
            "fl": "<![CDATA[<3 级]]>",
            "type": "多云"
        },
        "city": "北京",
        "forecast": [
            {
                "date": "2 日星期六",
                "high": "低温 14℃",
                "fengli": "<![CDATA[<3 级]]>",
                "low": "高温 8℃",
                "fengxiang": "北风",
                "type": "小雨"
            },

        ],
        "ganmao": "昼夜温差较大,较易产生感冒,请适当增减衣服。体质较弱的敌人请留神防护。",
        "wendu": "12"
    },
    "status": 1000,
    "desc": "OK"
}

获取天气的次要代码如下:

# cityCode 替换为具体某一个城市的对应编号
# 1、发送申请,获取数据
url = f'http://wthrcdn.etouch.cn/weather_mini?citykey={cityCode}'
res = requests.get(url)
res.encoding = 'utf-8'
res_json = res.json()

# 2、数据格式化
data = res_json['data']
city = f"城市:{data['city']}\n"  
# 字符串格式化的一种形式 f"{}" 通过字典传递值

today = data['forecast'][0]
date = f"日期:{today['date']}\n"  # \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"

result = city + date + now + temperature + fengxiang + type + tips

print(result)

二、界面的实现

1、应用 Qt Designer 绘制窗口,保留为 ui 文件

2、把 ui 文件转为 py 文件

1、在生成的 ui 文件目录下,关上 cmd
2、输出以下命令(留神替换名称)

pyuic5 -o destination.py source.ui

3、信号与槽函数的连贯

# 1、清空按钮与对应函数连贯
clearBtn.clicked.connect(widget.clearResult)

# 2、查问按钮与对应函数连贯
queryBtn.clicked.connect(widget.queryWeather)

4、调用主窗口类

import sys     
from PyQt5.QtWidgets import QApplication , QMainWindow
from WeatherWin import Ui_widget
import requests
import json

class MainWindow(QMainWindow):
    def __init__(self, parent=None):    
        super(MainWindow, self).__init__(parent)
        self.ui = Ui_widget()
        self.ui.setupUi(self)

        # 通过文本框传入想要搜寻的城市名称: 天津
        cityName = self.ui.weatherComboBox.currentText()

        # 获取天气局部省略

        # 在文本框显示查问后果
        self.ui.resultText.setText(result)

    def clearResult(self):
        print('* clearResult')
        self.ui.resultText.clear()  

if __name__=="__main__":  
    app = QApplication(sys.argv)  
    win = MainWindow()  
    win.show()  
    sys.exit(app.exec_()) 

文章到这里就完结了,感激你的观看,Python 实用脚本系列,下篇文章分享疾速卡通化人物头像

为了感激读者们,我想把我最近珍藏的一些编程干货分享给大家,回馈每一个读者,心愿能帮到你们。

干货次要有:

① 2000 多本 Python 电子书(支流和经典的书籍应该都有了)

② Python 规范库材料(最全中文版)

③ 我的项目源码(四五十个乏味且经典的练手我的项目及源码)

④ Python 根底入门、爬虫、web 开发、大数据分析方面的视频(适宜小白学习)

⑤ Python 学习路线图(辞别不入流的学习)

⑥ 两天的 Python 爬虫训练营直播权限

All done~详见个人简介或者私信获取残缺源代码。。

正文完
 0