最近金价关注度比较高,自己也要买点金子送老婆送丈母娘的,所以每天都要看一下金价,觉得还挺麻烦,于是突发奇想,能否写一个程序,可以实时监控金价的波动,在window桌面直接运行观察,那就方便很多了。
于是我就想到了让我失业的deepseek,看看它是真有让我失业的本事还是徒有其表。
话不多说,直接开干
打开deepseek
输入使用Python写一个程序,可以实时监控金价的波动,运行在window桌面上
以下是实现实时金价监控的Python程序,使用Tkinter构建界面并通过API获取数据:
import tkinter as tk
import requests
from datetime import datetime
class GoldPriceMonitor:
def __init__(self, master):
self.master = master
master.title("实时金价监控")
master.geometry("350x150")
# 初始化界面组件
self.label = tk.Label(master, text="当前金价:加载中...", font=('微软雅黑', 16))
self.label.pack(pady=20)
self.time_label = tk.Label(master, text="最后更新时间:-", font=('微软雅黑', 10))
self.time_label.pack()
# API配置(需要替换为你的API密钥)
self.api_key = "YOUR_API_KEY" # 在此处填入你的API密钥
self.api_url = "https://api.metalpriceapi.com/v1/latest?api_key={}&base=XAU¤cies=USD"
# 立即获取初始数据
self.update_price()
def update_price(self):
try:
# 发送API请求
response = requests.get(self.api_url.format(self.api_key))
data = response.json()
# 解析响应数据
if response.status_code == 200 and data.get("success"):
price = data["rates"]["USD"]
timestamp = datetime.fromtimestamp(data["timestamp"])
update_time = timestamp.strftime("%Y-%m-%d %H:%M:%S")
# 更新界面显示
self.label.config(text=f"当前金价:${price:,.2f} USD/盎司")
self.time_label.config(text=f"最后更新时间:{update_time}")
else:
self.label.config(text="获取数据失败,请检查API密钥")
except Exception as e:
self.label.config(text="网络连接错误,请检查网络")
# 每60秒更新一次(注意API的请求频率限制)
self.master.after(60000, self.update_price)
if __name__ == "__main__":
root = tk.Tk()
app = GoldPriceMonitor(root)
root.mainloop()
使用说明:
-
获取API密钥:
- 访问 MetalPriceAPI 注册并获取免费API密钥
- 将代码中的
YOUR_API_KEY替换为你的实际密钥
-
运行依赖安装:
pip install requests -
打包为EXE(可选): pip install pyinstaller pyinstaller --onefile --windowed --icon=app.ico gold_monitor.py
功能特点:
- 实时显示国际金价(美元/盎司)
- 自动每分钟更新数据
- 显示最后更新时间
- 简单的错误提示功能
- 简洁的Windows原生界面
注意事项:
- MetalPriceAPI 免费套餐每月有100次请求限制,建议设置更新间隔为1小时(3600000毫秒)
- 如果使用其他API服务,需要相应修改API URL和数据解析逻辑
- 确保计算机保持网络连接状态
你可以根据需要调整以下参数:
- 窗口尺寸:修改
geometry("350x150") - 更新频率:修改
after(60000)中的毫秒值 - 字体样式:调整
font参数 - 价格显示格式:修改
f"当前金价:${price:,.2f} USD/盎司"中的格式字符串
建议在打包EXE时使用适合的ICO图标文件(通过--icon参数指定),使程序看起来更专业。
真实人比机器气死人,就这么一会的功夫,就把这些东西给我搞得明明白白的,只需要我替换一下MetalPriceAPI的实际密钥即可,真的是太棒了,可惜的是我没有密钥,下次有机会再把最终效果贴上来。