执行效果如下:

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可视化爬虫界面之天气查询相关推荐

  1. 利用python预测交通拥堵_Python可视化轻松展示交通拥堵情况

    作者:不正经的kimol君 源自:Python干货铺子 就在今天,我感受到了来自堵车的深深恶意.没有错!我今天被堵在路上近乎3个小时,美好的约会就这样化为泡影了. 我倒还真想看看这路到底能有多堵.于是 ...

  2. python金融数据分析案例_Python数据分析行业案例课程--欺诈检测

    注意: 1. 本行业案例课程为Python 3 数据分析系列课程的行业案例部分,学员请务必先观看课程介绍免费视频,确认已学习本课程所需Python分析技能. 2. 本课程的核心目的是协助学员学习具体业 ...

  3. python电影数据分析报告_Python数据分析实战:TMDB电影数据可视化

    一.数据预处理 本文将以项目实战的形式,对 TMDB电影数据进行数据分析与可视化实战,所使用的数据来源于 Kaggle,文末提供数据的下载方式. import json import pandas a ...

  4. 利用Python进行数据分析--绘图和可视化

    转载自:http://blog.csdn.net/ssw_1990/article/details/23739953 Python有许多可视化工具,但是我主要讲解matplotlib(http://m ...

  5. 基于python网络爬虫天气_Python网络爬虫之中国天气网

    大家好,今天我们来讲讲怎么用python对中国天气网进行爬取并且对爬取到的数据进行数据可视化的显示 这就是我们今天要爬取的内容,将中国天气网上的华北.东北等地区七天内的天气数据进行一个爬取,并且对最高 ...

  6. python基于web可视化_python可视化(转载)

    本文是关于Python数据可视化工具状态和SciPy 2018中出现的趋势的三部分系列文章中的第一篇. 作者:James A.Bender 在奥斯汀举行的SciPy 2018特别会议上,各种开源Pyt ...

  7. python 可视化_Python可视化|Matplotlib40LaTeX in Matplotlib和python

    "pythonic生物人"的第94篇分享. 本文介绍如何在Matplotlib中使用LaTeX 公式和符号.Python如何生成LaTeX数学公式. 本文速览 本文速览1.Matp ...

  8. python 可视化_python可视化基础

    常用的python可视化工具包是matplotlib,seaborn是在matplotlib基础上做的进一步封装.入坑python可视化,对有些人来说如同望山跑死马,心气上早输了一节.其实学习一门新知 ...

  9. python歌词图表分析_Python可视化图分析毛不易的《入海》,看看听歌的人都在想些什么...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 欢迎关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不 ...

最新文章

  1. 顺序结构,判断结构 if,switch
  2. 对象冒充_使用您的精神探照灯进行冒充冒名顶替综合症
  3. UVA11059 Maximum Product
  4. 冯怡:我想给大家展示一种可能性(图灵访谈)
  5. NeHe教程Qt实现——lesson05
  6. 生物信息学搞计算机,生物信息学前景展望,谈谈感想(已经停止)
  7. 浅谈python的对象的三大特性之封装
  8. 阿里云对数据可靠性保障的一些思考
  9. python迭代-如何对迭代器做切片操作
  10. 佛山高新区构建大数据产业新生态
  11. c/c++教程 - 1.9 指针 空指针 野指针 const修饰指针 指针常量 常量指针 指针和数组 指针和函数
  12. Postgres 数据库字符集更改 ERROR: new encoding (UTF8) is incompatible
  13. 博客文章加线框/表格
  14. Google 已将“xxxx”标记为恶意扩展程序并阻止安装,解决方案
  15. add svn 多个文件_用好Git 和 SVN ,轻松驾驭版本管理
  16. Mysql 自动增长 重置
  17. 基于51单片机数字电压表仿真设计_数码管显示
  18. 利用matlab导入或读取数据至Excel(COM方法和xlswrite,xlsread方法)
  19. 抖音一个老人和一个机器人歌曲_抖音M哥很火的歌曲有哪些
  20. LMS算法实现系统识别

热门文章

  1. FlutterFragment 踩坑记
  2. “box-shadow”属性(转)
  3. spring4.1.3模块的官方说明
  4. oracle 的“+”和“,”连接表的方式
  5. 1.HTML,CSS知识点
  6. docker on spark
  7. 【NOIP】OpenJudge - 15:银行利息
  8. 从系统盘符选错到认识硬盘的各种分区
  9. 深入阅读Mina源码(3) —— Mina之IOAdapter(二)
  10. 先知-Baidu的系统测试