用python给女朋友写个简单的每日问候脚本

1.效果图

2.源代码请看下面

 

import json
import time
import datetime
import http.client, urllib, json
import hashlib
from tkinter import INSERT
from urllib import parse
import requests
import tkinter as tk



list=[]
#这个是调用的百度天气的API接口,可以参照百度API文档
# 获取天气 信息
def GetBaiduResponse(district_id):
    # 以get请求为例http://api.map.baidu.com/geocoder/v2/?address=百度大厦&output=json&ak=你的ak
    queryStr = '/weather/v1/?district_id=%s&data_type=all&ak=BH5AASAs7UAkTjVND2tMwXBhnEHgFYCe' % district_id
    # 对queryStr进行转码,safe内的保留字符不转换
    encodedStr = parse.quote(queryStr, safe="/:=&?#+!$,;'@()*[]")
    # 在最后直接追加上yoursk
    rawStr = encodedStr + '这里写你自己申请的百度天气应用key'
    # 计算sn
    sn = (hashlib.md5(parse.quote_plus(rawStr).encode("utf8")).hexdigest())
    print(sn)
    # 由于URL里面含有中文,所以需要用parse.quote进行处理,然后返回最终可调用的url
    url = parse.quote("http://api.map.baidu.com" + queryStr + "&sn=" + sn, safe="/:=&?#+!$,;'@()*[]")
    res = requests.get(url, headers={"content-type": "application/json"}).content.decode()

    return res


response = GetBaiduResponse("610602")
# 字符串转化为字典
rj = json.loads(response)
print(rj)

# 小何
print("你好啊,小何同学")
list.append("你好啊,小何同学")
# 时间 星期
sj = rj.get('result').get('forecasts')[0].get('date')
xq = rj.get('result').get('forecasts')[0].get('week')
print(sj + ' ' + xq)
list.append(sj + ' ' + xq)
# 获取地区
dq = rj.get('result').get('location').get('name')
print('你的所在地区:' + dq)
list.append('你的所在地区:' + dq)
# 天气
tq = rj.get('result').get('now').get('text')
print('天气:' + tq)
list.append('天气:' + tq)
# 最低气温
zd = rj.get('result').get('forecasts')[0].get('low')
print('最低气温:' + str(zd) + '℃')
list.append('最低气温:' + str(zd) + '℃')
# 最高气温
zg = rj.get('result').get('forecasts')[0].get('high')
print('最高气温:' + str(zg) + '℃')
list.append('最高气温:' + str(zg) + '℃')
# 当前风向
fx = rj.get('result').get('now').get('wind_dir')
print('当前风向:' + fx)
list.append('当前风向:' + fx)



# 获取当前是时间
d1 = datetime.datetime.now()
# 固定时间 写确定关系的时间
d2 = datetime.datetime(2022, 7, 27)
d3 = datetime.datetime(2023, 6, 16)
print('宝啊,今天是我们相恋的第' + str((d1 - d2).days) + '天')
print('距离你的生日还有:' + str((d3 - d1).days) + '天')
list.append('宝啊,今天是我们相恋的第' + str((d1 - d2).days) + '天')
list.append('距离你的生日还有:' + str((d3 - d1).days) + '天')

# 今日寄语
# 这个是调用的彩虹屁API接口 自己注册开通,网上有教程
def jinrijiyu():
    conn = http.client.HTTPSConnection('apis.tianapi.com')  # 接口域名
    params = urllib.parse.urlencode({'key': '写你自己的key'})
    headers = {'Content-type': 'application/x-www-form-urlencoded'}
    conn.request('POST', '/zaoan/index', params, headers)
    tianapi = conn.getresponse()
    result = tianapi.read()
    data = result.decode('utf-8')
    dict_data = json.loads(data)
    # print(dict_data)
    print("让我们来看看你的今日寄语是啥:" + str(dict_data.get('result').get('content')))
    list.append("让我们来看看你的今日寄语是啥:" + str(dict_data.get('result').get('content')))
jinrijiyu()

print(list)

# 创建主窗口
win = tk.Tk()
win.title('今日问候')
text = tk.Text(win, width=60, height=30, undo=True, autoseparators=False)
text.pack()
for i in list:
    text.insert(INSERT, str(i) + '\n')

win.mainloop()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值