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()