冬天来啦,作为“特困户”,每天早上起床的速度感觉会击败全国3%的人。

2019年已经在不知不觉中到来了,2018年还是单身的你是不是已经在努力的脱单中呢?

为了帮助大家顺利脱单,小编今天给大家带来了最强的暖心方式用Python设计一款“智能化—定时提醒”,面向你的小姐姐,发射一波“爱心冲击波”。

但愿人长久,不做单身狗。

开讲啦 开讲啦:

实现第一步,用“和风天气”API获取天气数据(当然你也可以选用其他的接口)

城市接口: https://api.heweather.com/x3/weather?cityid=城市ID&key=你的认证key

2016-11-08 update 和风天气的API11月初改版了,所以上述接口地址需要更换成新的,看了下就加了个“free-”,后面代码加上就好了。

接口地址变了

首先得注册登录和风天气获得key,在城市代码里面找到想要查的城市ID,以北京为例:CN101010100

城市ID

先不着急写码,我们用API调试工具试试这个接口,看看返回的是什么数据。

我用的是chrome下postman,打开postman,输入接口链接:

https://api.heweather.com/x3/weather?cityid=CN101010100&key=这里填你的key

API调试工具

返回的是JSON格式的,现在用Python调用一下这个接口试试:

# -*- coding: utf-8 -*-import urllib2#调用和风天气的APIurl = 'https://api.heweather.com/x3/weather?cityid=CN101010100&key=你的key'#用urllib2创建一个请求并得到返回结果req = urllib2.Request(url)

resp = urllib2.urlopen(req).read()print resp

用postman看看结构就好了。

JSON表示的对象就是标准的JavaScript语言的对象,JSON和Python内置的数据类型有着对应关系如下:

Python内置数据类型和JSON的对应关系

对应关系

Python内置的json模块提供了非常完善的Python对象到JSON格式的转换。我们用loads()方法把JSON反序列化为Python对象

#将JSON转化为Python的数据结构json_data = json.loads(resp)print json_data

结果发现数据变成了u'XXXXX'的格式,这是因为反序列化得到的所有字符串对象默认都是unicode编码的。

结果

我们此时已经将天气数据拿到,并且反序列化为Python对象了,只有提取我们需要的数据即可。看下天气API提供哪些数据

postman上的JSON结构

我就每天早上听一下今天的气温、风力、pm2.5、穿衣建议就好了。

现在以获得pm2.5的值为例,一层层获取到pm2.5的值

pm2.5的值

上面说了JSON里面{}对应的是Python的dict,[]对应的是Python里的list,上图中可以比较清楚地知道这个JSON得到的Python数据其实是dict和list的多层嵌套。这里我们可以类比查《新华字典》,想要查到“天气”这个词,可以找到字母T的页码(按A~Z的有序列表),再找到“tian”所在的位置,一步步往里找就成找到想要的词了。

最外层是个dict类型:

dict: {'HeWeather...": [ list]}

往里一层是多个dict,直接通过多层dict['key']['key2']...就能取得PM2.5的值了:

list 只有一个值,取list[0] (它的值是一个dict),取得天气只需要

print json_data['HeWeather data service 3.0'][0]['aqi']['city']['pm25']

获取天气数据的代码:

额······ 几十行 放上来比较占地方 哈哈 所以

小伙伴们 进 小编 Q 君 羊

输入827 惊

接着502 喜

最后865 连在一起就是

到站后 问小编要“想要的代码”就好

不管是哪篇文章的源代码都是可以给的哈

一切只为优化阅读体验<官方要求>

小编表示:

运行结果

第二步、将文字合成语音

我直接用的百度的语音合成API,调用方法很简单(浏览器就可以玩)

1、同样是注册登录获得key,百度语音

2、注册个应用,随便啥应用都行,获得APPID

这几步都可以参考官方接入指南

3、获得token(一个月有效期,过期再获取即可)

浏览器输入:

https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的AppID&client_secret=你的AppKey

返回的JSON里面的“access_token”就是调用百度语音合成API要用的token

4、合成语音 ,必填、选填参数可看官方文档

http://tsn.baidu.com/text2audio?tex=需要合成语音的文本&lan=zh&per=0&cuid=设备mac地址或手机的IMEI码&ctp=1&tok=你的token

5、我们只需要把天气文本放在第4步的链接tex=' '里面就好了

第三步、用树莓派播放天气预报

树莓派上安装linux音频播放程序 mpg123,执行

sudo apt-get install mpg123

这玩意使用起来异常简单,试试用命令行 “mpg123 语音url” 来播放在线的音频

mpg123 http://tsn.baidu.com/text2audio?tex=需要合成语音的文本&lan=zh&per=0&cuid=设备mac地址或手机的IMEI码&ctp=1&tok=你的token

现在只要把第一步获得的天气文本用mpg123播放就好了,在第一步的代码基础上加上这些:

url = "http://tsn.baidu.com/text2audio?tex=" + weather_forcast_txt + "&lan=zh&per=0&cuid=设备mac地址或手机的IMEI码&ctp=1&tok=你的token"os.system('mpg123 "%s"'%(url)) #需要import os

最后,定时执行天气播报脚步就好了

用linux的crontab,可查看crontab定时任务

在终端执行

sudo crontab -e

新增一条

0 8 * * * python /home/pi/...(你的天气播报脚本的路径)

即每天8点整执行语音播报。

是不是很赞哇~

还不赶快动手操作下,做个定制版的“播报提醒”程序,暖心你的小姐姐,加油!

愿有情人终成眷属

【此文章源代码私聊小编得到,切记:得到代码后要跟着敲打一边,进行实操练习!】

(玩个小游戏哈)看图猜人:

全部猜对的,有惊喜:“Python新年大礼包”

欢迎小伙伴评论区留言!

2019想脱单?这款Python智能化“天气提醒”程序暖心你的小姐姐!相关推荐

  1. 2019脱单指南 | 用Python数据解决单身问题

    问答类型平台最有趣的地方就在于不确定性,因为你永远不知道沙雕网友会提什么脑洞问题. 最近很多关于晒择偶标准的帖子,活脱脱把知乎变成了另一个"世纪佳缘",回答清一色的爆照和晒条件,这 ...

  2. 双11了,漂亮灵气仙气十足的小姐姐想脱单,广东惠州人,大专学历财务工作,性格温和(NO.001)...

    点击上方蓝色文字关注置顶公众号 NO.001 广东妹子 个 人 基 本 信 息 出生日期:1995年 身高:155cm 现居地:广东-珠海 老家:广东-惠州人 学历:大专学历 职业:财务工作 自 我 ...

  3. 对不起,我想脱单想疯了…

    对男生来讲,单身越久,越觉得谈恋爱难.嘴上说着我不介意,但午夜梦回时总会突然惊醒:总不能一辈子这样过下去吧?! 为什么遇到一个心动的人这么难? 今天,我采访了单身率极高的程序员们,和大家一起聊一聊&q ...

  4. 2019年脱单攻略|用Python爬取世纪佳缘美女照片,实现颜值评分

    "关爱单身程序猿,人人有责" 周末,程序员小明一大早给我发来消息说想找一个女朋友. | 数据探索 于是.... 我登陆了他的账号,摸索着浏览了这个网站 我准备把符合条件的小姐姐的头 ...

  5. Python分析101位《创造营2020》小姐姐,谁才是你心中的颜值担当?

    来源 | CDA 数据分析师 责编 |  Carol Show me data,用数据说话. 今天我们聊一聊<创造营2020>各个小姐姐,点击下方视频,先睹为快: 最近可以追的综艺真是太多 ...

  6. python能做机器人吗_为了追到小姐姐,我用python做了一个机器人,初学者就能做!...

    目 标 场 景 最近发现有一个微信好友,我的每一条朋友圈动态,无论什么时候发布,发布的什么内容,点赞列表总有它的身影. 这不禁让我陷入一种沉思,是否我也能做一个机器人,第一个时间给暗恋的小姐姐朋友圈点 ...

  7. 把url地址复制到粘贴板上_写个简单的python爬虫爬取堆糖上漂亮的小姐姐

    简单的爬虫入门实战 最近刚学了python的爬虫,刚好可以用来爬取漂亮的图片作为壁纸,网上美图网站有很多,比如:花瓣,堆糖.它们请求图片数据的方式差不多类似,都是通过用户不断下滑加载新的图片,这种请求 ...

  8. 【Python】多线程爬取某站高颜值小姐姐照片(共1.62GB)

    文章目录 写在前面 目标网站 依赖模块 爬虫思路 完整代码 爬虫结果 单图预览 多图预览 引用参考 写在前面 本文使用Python编写爬虫脚本,实现多线程爬取唯美女生网站高颜值小姐姐的所有照片. 目标 ...

  9. Python爬虫实战:爬取YY上漂亮小姐姐视频

    目录 1.目标 2.确定数据所在的url 3.发送网络请求 4.数据解析 5.数据保存 6.爬取其他页数据 1.目标 本次目标是爬取YY(https://www.yy.com/)主页分类中小视频板块, ...

最新文章

  1. 通过Windbg查看DataTable的值
  2. 016 Android之NDK开发
  3. 农民丰收节交易英德海奇组委会议-陈业海:功能农业大健康
  4. 显示Intent和隐式Intent
  5. NeurIPS 2020有哪些值得读的「图神经网络」论文?
  6. 移动Web加速技术月报第2期
  7. java随机输出_用java随机输出汉字
  8. 线性方程组(A是上三角矩阵时)的C++求解
  9. 事实表和维度表是怎么造数据_数据库与数据仓库的那点事
  10. jsp-include 写法
  11. AssetBundle资源冗余检测
  12. 获取QQ音乐排行榜数据
  13. 运维派 企业面试题1 监控MySQL主从同步是否异常
  14. linux重装出现cannot load file 5555h,技术员教你解决win7系统重装开机提示cannot load file code:5555h的操作方案...
  15. 3-maven学习-学习创建maven的依赖属性
  16. 推荐算法学习笔记--DIN篇
  17. Ubuntu18.04便签工具xpad安装
  18. 大数据时代下,跨境电商如何利用数据实现快速发展
  19. 想剑网三妹子最多服务器,萌妹子玩游戏之剑网三 国产网游经典大作来袭
  20. powershell配置anaconda及解决【无法加载文件C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本】的问题

热门文章

  1. 2022年数据与分析有哪些新趋势?关注哪些动态?
  2. 怎样把图片转换成jpg格式?如何完成批量图片格式转换?
  3. 书中的阿甘和电影中的阿甘
  4. 如何下载网页中背景音乐
  5. html5添加背景音乐
  6. android 抛物线轨迹,Android用Animation实现完整的抛物线效果
  7. 一步解决双系统时间不一致问题
  8. SQL模糊查询时特殊字符的处理方式总结
  9. 我的世界java边境之地_我的世界边境之地你会怎么去? 下界传送门只需要几个小时...
  10. Linux驱动笔记-字符设备,块设备,网络设备