python天气数据分析可视化_python可视化爬虫界面之天气查询
执行效果如下:
from tkinter import *
import urllib.request
import gzip
import json
from tkinter import messagebox
root = Tk()
def main():
# 输入窗口
root.title('Python学习交流群:973783996') # 窗口标题
Label(root, text='请输入城市').grid(row=0, column=0) # 设置标签并调整位置
enter = Entry(root) # 输入框
enter.grid(row=0, column=1, padx=20, pady=20) # 调整位置
enter.delete(0, END) # 清空输入框
enter.insert(0, 'Python学习交流群:973783996') # 设置默认文本
# enter_text = enter.get()#获取输入框的内容
running = 1
def get_weather_data(): # 获取网站数据
city_name = enter.get() # 获取输入框的内容
url1 = 'http://wthrcdn.etouch.cn/weather_mini?city=' + urllib.parse.quote(city_name)
url2 = 'http://wthrcdn.etouch.cn/weather_mini?citykey=101010100'
# 网址1只需要输入城市名,网址2需要输入城市代码
# print(url1)
weather_data = urllib.request.urlopen(url1).read()
# 读取网页数据
weather_data = gzip.decompress(weather_data).decode('utf-8')
# 解压网页数据
weather_dict = json.loads(weather_data)
# 将json数据转换为dict数据
if weather_dict.get('desc') == 'invilad-citykey':
print(messagebox.askokcancel("xing", "你输入的城市名有误,或者天气中心未收录你所在城市"))
else:
# print(messagebox.askokcancel('xing','bingguo'))
show_data(weather_dict, city_name) def show_data(weather_dict, city_name): # 显示数据
forecast = weather_dict.get('data').get('forecast') # 获取数据块
root1 = Tk() # 副窗口
root1.geometry('650x280') # 修改窗口大小
root1.title(city_name + '天气状况') # 副窗口标题
# 设置日期列表
for i in range(5): # 将每一天的数据放入列表中
LANGS = [(forecast[i].get('date'), '日期'),
(forecast[i].get('fengxiang'), '风向'),
(str(forecast[i].get('fengji')), '风级'),
(forecast[i].get('high'), '最高温'),
(forecast[i].get('low'), '最低温'),
(forecast[i].get('type'), '天气')]
group = LabelFrame(root1, text='天气状况', padx=0, pady=0) # 框架
group.pack(padx=11, pady=0, side=LEFT) # 放置框架
for lang, value in LANGS: # 将数据放入框架中
c = Label(group, text=value + ': ' + lang)
c.pack(anchor=W)
Label(root1, text='今日' + weather_dict.get('data').get('ganmao'),
fg='green').place(x=40, y=20, height=40) # 温馨提示
Label(root1, text="StarMan: 49star.com", fg="green", bg="yellow").place(x=10, y=255, width=125, height=20) # 作者网站
Button(root1, text='确认并退出', width=10, command=root1.quit).place(x=500, y=230, width=80, height=40) # 退出按钮
root1.mainloop()
# 布置按键
Button(root, text="确认", width=10, command=get_weather_data) \
.grid(row=3, column=0, sticky=W, padx=10, pady=5)
Button(root, text='退出', width=10, command=root.quit) \
.grid(row=3, column=1, sticky=E, padx=10, pady=5)
if running == 1:
root.mainloop()
if __name__ == '__main__':
main()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
python天气数据分析可视化_python可视化爬虫界面之天气查询相关推荐
- 利用python预测交通拥堵_Python可视化轻松展示交通拥堵情况
作者:不正经的kimol君 源自:Python干货铺子 就在今天,我感受到了来自堵车的深深恶意.没有错!我今天被堵在路上近乎3个小时,美好的约会就这样化为泡影了. 我倒还真想看看这路到底能有多堵.于是 ...
- python金融数据分析案例_Python数据分析行业案例课程--欺诈检测
注意: 1. 本行业案例课程为Python 3 数据分析系列课程的行业案例部分,学员请务必先观看课程介绍免费视频,确认已学习本课程所需Python分析技能. 2. 本课程的核心目的是协助学员学习具体业 ...
- python电影数据分析报告_Python数据分析实战:TMDB电影数据可视化
一.数据预处理 本文将以项目实战的形式,对 TMDB电影数据进行数据分析与可视化实战,所使用的数据来源于 Kaggle,文末提供数据的下载方式. import json import pandas a ...
- 利用Python进行数据分析--绘图和可视化
转载自:http://blog.csdn.net/ssw_1990/article/details/23739953 Python有许多可视化工具,但是我主要讲解matplotlib(http://m ...
- 基于python网络爬虫天气_Python网络爬虫之中国天气网
大家好,今天我们来讲讲怎么用python对中国天气网进行爬取并且对爬取到的数据进行数据可视化的显示 这就是我们今天要爬取的内容,将中国天气网上的华北.东北等地区七天内的天气数据进行一个爬取,并且对最高 ...
- python基于web可视化_python可视化(转载)
本文是关于Python数据可视化工具状态和SciPy 2018中出现的趋势的三部分系列文章中的第一篇. 作者:James A.Bender 在奥斯汀举行的SciPy 2018特别会议上,各种开源Pyt ...
- python 可视化_Python可视化|Matplotlib40LaTeX in Matplotlib和python
"pythonic生物人"的第94篇分享. 本文介绍如何在Matplotlib中使用LaTeX 公式和符号.Python如何生成LaTeX数学公式. 本文速览 本文速览1.Matp ...
- python 可视化_python可视化基础
常用的python可视化工具包是matplotlib,seaborn是在matplotlib基础上做的进一步封装.入坑python可视化,对有些人来说如同望山跑死马,心气上早输了一节.其实学习一门新知 ...
- python歌词图表分析_Python可视化图分析毛不易的《入海》,看看听歌的人都在想些什么...
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 欢迎关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不 ...
最新文章
- 顺序结构,判断结构 if,switch
- 对象冒充_使用您的精神探照灯进行冒充冒名顶替综合症
- UVA11059 Maximum Product
- 冯怡:我想给大家展示一种可能性(图灵访谈)
- NeHe教程Qt实现——lesson05
- 生物信息学搞计算机,生物信息学前景展望,谈谈感想(已经停止)
- 浅谈python的对象的三大特性之封装
- 阿里云对数据可靠性保障的一些思考
- python迭代-如何对迭代器做切片操作
- 佛山高新区构建大数据产业新生态
- c/c++教程 - 1.9 指针 空指针 野指针 const修饰指针 指针常量 常量指针 指针和数组 指针和函数
- Postgres 数据库字符集更改 ERROR: new encoding (UTF8) is incompatible
- 博客文章加线框/表格
- Google 已将“xxxx”标记为恶意扩展程序并阻止安装,解决方案
- add svn 多个文件_用好Git 和 SVN ,轻松驾驭版本管理
- Mysql 自动增长 重置
- 基于51单片机数字电压表仿真设计_数码管显示
- 利用matlab导入或读取数据至Excel(COM方法和xlswrite,xlsread方法)
- 抖音一个老人和一个机器人歌曲_抖音M哥很火的歌曲有哪些
- LMS算法实现系统识别
热门文章
- FlutterFragment 踩坑记
- “box-shadow”属性(转)
- spring4.1.3模块的官方说明
- oracle 的“+”和“,”连接表的方式
- 1.HTML,CSS知识点
- docker on spark
- 【NOIP】OpenJudge - 15:银行利息
- 从系统盘符选错到认识硬盘的各种分区
- 深入阅读Mina源码(3) —— Mina之IOAdapter(二)
- 先知-Baidu的系统测试