本系统主要包括四个函数:

1、获取天气数据

1、输入要查询天气的城市

2、利用urllib模块向中华万年历天气api接口请求天气数据

3、利用gzip解压获取到的数据,并编码utf-8

4、利用json转化成python识别的数据,返回为天气预报数据复杂形式的字典(字典中的字典)

2、输出当天天气数据

1、格式化输出当天天气,包括:天气状况,此时温度,最高温度、最低温度,风级,风向等。

3,语音播报当天天气

1、创建要输出的语音文本(weather_forecast_txt)

2、利用百度的语音合成模块AipSpeech,合成语音文件

3,利用playsound模块播放语音

4、未来几天温度变化趋势

1、创建未来几天高低温数据的字典

2,利用matplotlib模块,图形化温度变化趋势

5、代码

#导入必要模块

import urllib.parse

import urllib.request

import gzip

import json

import playsound

from aip import AipSpeech

import matplotlib.pyplot as plt

import re

#设置参数,图片显示中文字符,否则乱码

plt.rcParams['font.sans-serif']=['SimHei']

#定义获取天气数据函数

def Get_weather_data():

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

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

url = 'http://wthrcdn.etouch.cn/weather_mini?city=' + urllib.parse.quote(city_name)

weather_data = urllib.request.urlopen(url).read()

# 读取网页数据

weather_data = gzip.decompress(weather_data).decode('utf-8')

# #解压网页数据

weather_dict = json.loads(weather_data)

return weather_dict

#定义当天天气输出格式

def Show_weather(weather_data):

weather_dict = weather_data

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

print('你输入的城市有误或未收录天气,请重新输入...')

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

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

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

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

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

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

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

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

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

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

weather_forecast_txt = '您好,您所在的城市%s,' \

'天气%s,' \

'当前温度%s,' \

'今天最高温度%s,' \

'最低温度%s,' \

'风级%s,' \

'温馨提示:%s' % \

(

weather_dict.get('data').get('city'),

forecast[0].get('type'),

weather_dict.get('data').get('wendu'),

forecast[0].get('high'),

forecast[0].get('low'),

forecast[0].get('fengli').split('<')[2].split(']')[0],

weather_dict.get('data').get('ganmao')

)

return weather_forecast_txt,forecast

#定义语音播报今天天气状况

def Voice_broadcast(weather_forcast_txt):

weather_forecast_txt = weather_forcast_txt

APP_ID = 你的百度语音APP_ID

API_KEY = 你的百度语音API_KEY

SECRET_KEY = 你的百度语音SECRET_KEY

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

print('语音提醒:', weather_forecast_txt)

#百度语音合成

result = client.synthesis(weather_forecast_txt, 'zh', 1, {'vol': 5})

if not isinstance(result, dict):

with open('sound2.mp3', 'wb') as f:

f.write(result)

f.close()

#playsound模块播放语音

playsound.playsound(r'C:\Users\ban\Desktop\bsy\sound2.mp3')

#未来四天天气变化图

def Future_weather_states(forecast):

future_forecast = forecast

dict={}

#获取未来四天天气状况

for i in range(5):

data = []

date=future_forecast[i]['date']

date = int(re.findall('\d+',date)[0])

data.append(int(re.findall('\d+',future_forecast[i]['high'])[0]))

data.append(int(re.findall('\d+', future_forecast[i]['low'])[0]))

data.append(future_forecast[i]['type'])

dict[date] = data

data_list = sorted(dict.items())

date=[]

high_temperature = []

low_temperature = []

for each in data_list:

date.append(each[0])

high_temperature.append(each[1][0])

low_temperature.append(each[1][1])

fig = plt.plot(date,high_temperature,'r',date,low_temperature,'b')

plt.xlabel('日期')

plt.ylabel('℃')

plt.legend(['高温','低温'])

plt.xticks(date)

plt.title('最近几天温度变化趋势')

plt.show()

#主函数

if __name__=='__main__':

weather_data = Get_weather_data()

weather_forecast_txt, forecast = Show_weather(weather_data)

Future_weather_states(forecast)

Voice_broadcast(weather_forecast_txt)

6、最终效果

python天气预报的功能介绍_python实现智能语音天气预报相关推荐

  1. python json loads 中文乱码_python实现智能语音天气预报

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 飞奔的帅帅 PS:如有需要Python学习资料的小伙伴可以加点击下 ...

  2. python工具的功能介绍_Python功能工具

    python工具的功能介绍 One of the biggest power which Python demonstrates is providing tools for writing reus ...

  3. python语音播报天气预报_python实现智能语音天气预报

    python编写的语音天气预报 本系统主要包括四个函数: 1.获取天气数据 1.输入要查询天气的城市 2.利用urllib模块向中华万年历天气api接口请求天气数据 3.利用gzip解压获取到的数据, ...

  4. python天气预报的功能介绍_python 实现天气预报功能

    中国国家气象局提供了获取所在城市天气预报信息的接口.通过这个接口,我们就可以获取天气信息了. 中国国家气象局天气预报接口总共提供了三个: http://www.weather.com.cn/data/ ...

  5. python实现天气预报_python实现智能语音天气预报

    本系统主要包括四个函数: 1.获取天气数据 1.输入要查询天气的城市 2.利用urllib模块向中华万年历天气api接口请求天气数据 3.利用gzip解压获取到的数据,并编码utf-8 4.利用jso ...

  6. python开发环境功能介绍_第一模块 第3章 Python介绍与环境配置

    python入门(全为重点) 1. 编程语言介绍 编程语言分类.总结 2. python介绍 3. 解释器多版本共存 4. 运行python程序的两种方式 5. 一个python程序运行的三个步骤(* ...

  7. php加入语音播报功能_PHP如何实现智能语音播报

    PHP实现智能语音播报的方法:首先获取时间信息,并获取天气状况:然后语音合成:最后播放合成之后的语音文件,代码为[exec('sudo /usr/bin/play /tmp/audio.mp3')]. ...

  8. python的功能介绍_Python之int内部功能介绍

    int内部功能的介绍 type(): 1.基本数据类型使用type()函数时,得到相应的数据类型 a = 12 b = 12.01 c = "123" print(type(a)) ...

  9. python实现计算器功能键介绍_python实现计算器功能

    本文实例为大家分享了python计算器的具体代码,供大家参考,具体内容如下 主要用到的工具是Python中的Tkinter库 比较简单 直接上图形界面和代码 引用Tkinter库 from tkint ...

最新文章

  1. OpenAI发布新人工智能系统:根据文字生成图像
  2. uniapp 生成Android证书及.keystore转.jks、.pem
  3. 为什么要在神经网络分类训练中使用 Cross-Entropy?(to be continued)
  4. word 2010中如何创建多级目录和多级列表
  5. 数据结构---前序和中序遍历的二叉树序列还原二叉树
  6. LOJ#2145. 「SHOI2017」分手是祝愿
  7. java高级编程期末考试题_java高级编程考题
  8. 大型网站HTTPS实践:HTTPS对性能的影响
  9. c语言用栈实现计算器加法运算,请问,用c语言做一个计算器 包括+-*/()的运算 用栈 该怎么做...
  10. 【蓝桥结果填空】:时间显示
  11. 工行登录企业网银时,如遇“请确认您已插入工商银行U盾证书,或更换端口后再次尝试登录”提示的解决办法
  12. 普通话/汉语的语音识别:DFSMN-CTC-SMBR模型
  13. ssh遇到密钥更改问题
  14. win7系统自带的录像在哪里 Win7问题步骤记录器教程详解
  15. 停车场门禁控制系统的状态机
  16. android系统的市场占有率,安卓系统市场占有率竟然比苹果iOS高了这么多
  17. 华兴资本年营收25亿:净利16亿 同比增56.5%
  18. AI 与经济生产力的这场革命,怕是革不动
  19. lte同步信号 matlab,一种TD-LTE系统下行辅同步信号检测方法
  20. 层层剖析,让你彻底搞懂Self-Attention、MultiHead-Attention和Masked-Attention的机制和原理

热门文章

  1. routing zuul_尚学堂0131之zuul的相关概念及如何性能调优
  2. jmeter使用_jmeter工具的使用
  3. mysql+if+x+mod+2_Windows 下 MantisBT 2.X + Apache 2.4 + PHP 7 + MySQL 5.7 的环境配置
  4. 少儿编程100讲轻松学python(六)-pycharm怎么汉化?
  5. 荣耀v40可以升级华为鸿蒙,网传荣耀V40机型也能升级鸿蒙OS 首批更新机型有望是这5款...
  6. oracle 中大于等于_针对oracle安装参数调整方法
  7. shell编程入门 linux解释器原理,Shell编程入门Linux解释器原理详细介绍 使用Shell进行工作的人们对.doc...
  8. java fx 内置图标_图标 – 如何在Windows上为javafx本机程序包图标设置自定义图标...
  9. 七夕(情人节)表白女朋友,程序员应该如何装一波13
  10. 卸载 流程_一款适合于windows端的卸载神器 彻底清理残留软件