python天气查询系统有什么知识点_Python入门 天气查询程序

刚入门python,借鉴了论坛上前人写的天气查询程序

通过使用中国天气网的API接口来实现

如图:

贴上源代码,希望大家评论交流:

import urllib.request

import gzip

import json

print('------天气查询------')

def get_weather_data() :

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

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数据

return weather_dict

def show_weather(weather_data):

weather_dict = weather_data

#将json数据转换为dict数据

if weather_dict.get('desc') == 'invilad-citykey':

print('你输入的城市名有误,或者天气中心未收录你所在城市')

elif weather_dict.get('desc') =='OK':

forecast = weather_dict.get('data').get('forecast')

print('城市:',weather_dict.get('data').get('city'))

print('温度:',weather_dict.get('data').get('wendu')+'℃ ')

print('感冒:',weather_dict.get('data').get('ganmao'))

print('风向:',forecast[0].get('fengxiang'))

print('风级:',forecast[0].get('fengli'))

print('高温:',forecast[0].get('high'))

print('低温:',forecast[0].get('low'))

print('天气:',forecast[0].get('type'))

print('日期:',forecast[0].get('date'))

print('*******************************')

four_day_forecast =input('是否要显示未来四天天气,是/否:')

if four_day_forecast == '是' or 'Y' or 'y':

for i in range(1,5):

print('日期:',forecast[i].get('date'))

print('风向:',forecast[i].get('fengxiang'))

print('风级:',forecast[i].get('fengli'))

print('高温:',forecast[i].get('high'))

print('低温:',forecast[i].get('low'))

print('天气:',forecast[i].get('type'))

print('--------------------------')

print('***********************************')

show_weather(get_weather_data())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【内含福利】全球第一例:苹果Apple Card遭盗刷,物理卡或被克隆;谷歌正在试产5G智能手机,最快下周发布……...

戳蓝字“CSDN云计算”关注我们哦!嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周五第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

tomcat内存溢出

-Xms1024m -Xmx1536m -XX:PermSize128M -XX:MaxPermSize556M -Dfile.encodingUTF-8

如何用Java代码解析json

如何用Java代码解析json 今天在写项目的时候用到了json,然后尝试着Java代码解析了一下json 用相同的类型定义一个参数,然后json.与定义的参数类型一样的get方法,括号里面就是要解析的key 我图片的是嵌套json,解析两次在输出。

利用函数wavread对语音信号进行采样_AI大语音(一)——语音识别基础(深度解析)...

1 声音特性​ 声音(sound)是由物体振动产生的声波。是通过介质传播并能被人或动物听觉器官所感知的波动现象。最初发出振动的物体叫声源。声音以波的形式振动传播。声音是声波通过任何介质传播形成的运动。频率:是每秒经过一给定点的声波数量&#xff0c…

PostgreSQL PostGIS 的5种空间距离排序(knn)算法

摘要: 标签 PostgreSQL , PostGIS , operator , ops , knn 背景 PostgreSQL GiST索引支持排序接口,可以支撑空间、标准、数组、文本向量、文本等类型的排序。 标签 PostgreSQL , PostGIS , operator , ops , knn 背景 PostgreSQL GiST索引支持排序接口…

程序员为什么爱穿格子衫和卫衣?

点击上方蓝色字关注我们~兢兢业业宵衣旰食写代码造福网友承受着发际线后退和眼神涣散的双重折磨这就是程 序 员为什么这么多的程序员都爱连帽卫衣呢?在我们的卫衣上市之前,我们调查了一下,小编认为也许有以下四点原因——01小肚腩连帽卫衣的宽…

clientdataset 遍历字段_Delphi TClientDataSet[五]: 读取数据

Delphi TClientDataSet[5]: 读取数据。本例用到:TClientDataSet.Fields[];      { 字段集合; 它比 FieldList 有更多功能, 如可获取嵌套字段 }TClientDataSet.FieldList[];    { 字段列表; 它比 Fields 轻便, 如果只是取值用它快一些 }TClientDataSet.Fi…

Alios Things的Flash划分规则

摘要: 为了方便大家移植Alios Things,本文给出了关于Alios Things Flash划分规则,及注意事项。 Alios Things简介 AliOS Things发布于2017年杭州云栖大会, 是 AliOS 家族旗下的、面向IoT领域的、高可伸缩的物联网操作系统,于201…

如何解决数组下标越界异常

如何解决数组下标越界异常 今天在写接口的时候运行发现有一个数组的下标越界异常了, 检查了一下发现实在上面的数组中有一些字符串没有大写,造成跟下面的数组字符串不一样,所以导致了数组下标越界异常。

python每天定时9点执行_[求助]关于twisted框架,如何每天定时执行一个scrapy爬虫...

RT,最近在学scrapy,写了一个简单的爬取网页数据的爬虫,利用CrawlProcess单次调用执行的时候没有问题,脚本如下,就是清空数据表然后爬取数据: class updateBoardData: def __init__(self): self.db connect…

centos7 yum安装ifconfig

centos7 yum安装ifconfig yum install net-tools

web前端规范

摘要: HTML 原则1.规范 。保证您的代码规范,保证结构表现行为相互分离。2.简洁。保证代码的最简化,避免多余的空格、空行,保持代码的语义化,尽量使用具有语义的元素,避免使用样式属性和行为属性。任何时候都…

华为表示年内没有推出搭载鸿蒙操作系统手机的计划;OpenStack或被抛弃?iPhone至少还要三年可苹果自研5G调制解调器……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 每周三次,打卡即…

获取控件enable状态_Android自定义组合控件数字加减(适用于购物车)

大家好,我是小黑,一个还没秃头的程序员~~~独学而无友,则孤陋而寡闻--《礼记学记》今天的内容是自定义一个数组加减的控件,可以应用于购物车的数量选择,效果如下:自定义实现了控件的默认值、最大值、最小值、…

python os.path.splitext()的用法_Python常用模块之os.path

os.path.abspath(path) 输入相对路径,返回绝对路径 Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. >>&…

IPv6转换服务正式发布

摘要: IPv6时代已来,阿里云IPv6转换服务帮忙您使现有IPv4业务快速提供IPv6访问能力 什么是IPv6转换服务 IPv6转换服务(IPv6 Translation Service)是阿里云提供的一种有状态的IPv6和IPv4网络地址和协议转换服务。 通过IPv6转换服…

【角度刁钻】如果把线程当作一个人来对待,秒懂

戳蓝字“CSDN云计算”关注我们哦!作者 | 编程新说李新杰责编 | 阿秃多线程的问题都曾经困扰过每个开发人员,今天将从全新视角来解说,希望读者都能明白。强烈建议去运行下文章中的示例代码,自己体会下。问题究竟出在哪里&#xff…

时间序列数据卡尔曼滤波_使用Highcharts和InfluxDB可视化时间序列数据

实时绘制大量带时间戳的数据往往是一项棘手的任务,需要相当多的技巧和过多的耐心。幸运的是,我们已经有了InfluxData平台来为我们提供开箱即用的许多困难。我们可以高效,安全地收集和存储数据,构建可视化,甚至设置警报…

AI又破案!衢州城市大脑这回抓了一个抢劫犯

摘要: 浙江衢州再次上演AI破案的神迹:两周时间内,衢化西路、巨化西路连续发生两起金项链抢劫案。受案发现场条件限制,视频侦查问题重重。在衢州城市大脑的帮助下,警方最终锁定犯罪嫌疑人马某并进行逮捕。经查&#xff…