编程语言
首页 > 编程语言> > 语音播报ip所在地址的天气信息 python

语音播报ip所在地址的天气信息 python

作者:互联网

          到这儿 免费天气接口api 用qq注册登录,然后拿到 APPID 和 APPSecret。
在这里插入图片描述

import requests
from requests import utils
import json

def apishop_send_request(method, url, params=None, headers=None):
   '''
   转发请求到目的主机
   @param method str 请求方法
   @param url str 请求地址
   @param params dict 请求参数
   @param headers dict 请求头
   '''
   method = str.upper(method)
   if method == "POST":
       return requests.post(url=url, data=params, headers=headers)
   elif method == "GET":
       return requests.get(url=url, params=params, headers=headers)
   else:
       return None

method = "get"
url = "https://tianqiapi.com/api"
headers = None
params = {
    "version": "v6",           #用的时候改成自己的版本号,免费的就是v6,一天300次
    "appid" : "94828159",      #用的时候改成自己的id
    "appsecret" : "nRLfzq8O"   #用的时候改成自己的密码
}
result = apishop_send_request(method=method, url=url, params=params, headers=headers)

if result.encoding == 'ISO-8859-1':
    encodings = requests.utils.get_encodings_from_content(result.text)
    if encodings:
        encoding = encodings[0]
    else:
        encoding = result.apparent_encoding
    encode_content = result.content.decode(encoding, 'replace').encode('utf-8', 'replace')


'''-------------------------语音播报设计--------------------------------'''
import pyttsx3

def speak(goalStr):
    engine = pyttsx3.init()   # 初始化
    # engine.setProperty('voice', "com.apple.speech.synthesis.voice.sin-ji")  #设置发音人,不过我电脑似乎不起作用
    # engine.setProperty('voice', "com.apple.speech.synthesis.voice.mei-jia")
    rate = engine.getProperty('rate')  # 改变语速  范围为0-200   默认值为200
    engine.setProperty('rate', rate-40)
    engine.setProperty('volume', 0.7)  # 设置音量  范围为0.0-1.0  默认值为1.0
    engine.say(goalStr)   # 预设要朗读的文本数据
    engine.runAndWait()   # 读出声音

# if __name__ == '__main__':
#     strValue ="昆明的天气情况如下:日期: 08月18日(星期二), 天气: 雨, 温度: 20℃, PM2.5: 20, 相对湿度: 92%"
#     speak(strValue)
'''-------------------------语音播报设计--------------------------------'''


if result:
   body = result.text
   response = json.loads(body)
   status_code = result.status_code
   if (status_code == 200):
       print("请求成功:%s" % (response,))
       goalstr='您所在的城市为:'+response['country']+response['city']+',今天是:'+response['week']+'。天气:'+response['wea']+ \
       ',最高温度:'+response['tem1']+'摄氏度,'+'最低温度:'+response['tem2']+'摄氏度,'+'当前温度:'+response['tem']+'摄氏度,'+\
        '空气质量:'+response['air_level']+',pm2.5指数:'+response['air_pm25']+'。'+response['air_tips']
       speak(goalstr)
   else:
       print("请求失败: %s" % (response,))
else:
   print("发送请求失败")

标签:播报,python,ip,method,headers,params,url,response,result
来源: https://www.cnblogs.com/2944014083-zhiyu/p/14877685.html