正題: python 調用三方API實現實時查詢油價查詢窗口(GUI)

1.導入模塊:

import tkinter as tk
from tkinter import ttk
import requests
from datetime import datetime

2.定義獲取油價函數:

def fetch_oil_price():
selected_province = province_var.get()
uid = ''
appkey = ''
url = 'http://oil.ylapi.cn/todayoil/info.u'
params = {
'uid': uid,
'appkey': appkey,
'prov': selected_province
}
response = requests.post(url, data=params)
print(response.text) # 打印響應內容

data = response.json()
if 'code' in data:
if data['code'] == '1000':
oil_prices = data['data']
update_time_str = oil_prices['ct']
update_time = datetime.strptime(update_time_str, '%Y-%m-%d %H:%M:%S.%f')
update_time_formatted = update_time.strftime('%Y-%m-%d')

update_time_label.config(text=f"數據更新時間:{update_time_formatted}")

for widget in oil_price_frame.winfo_children():
widget.destroy()

ttk.Label(oil_price_frame, text="類型").grid(row=0, column=0)
ttk.Label(oil_price_frame, text="油價(元/升)").grid(row=0, column=1)

row_num = 1
for key, value in oil_prices.items():
if key.startswith('p'):
type_name = key.replace('p', '') + "號" + ("柴油" if key == 'p0' else "汽油")
ttk.Label(oil_price_frame, text=type_name).grid(row=row_num, column=0)
ttk.Label(oil_price_frame, text=value).grid(row=row_num, column=1)
row_num += 1
else:
error_label.config(text=f"獲取油價失?。簕data['msg']}")
else:
error_label.config(text="獲取油價失敗:未收到有效的響應。")

3.創建主窗口和框架:

root = tk.Tk()
root.title("今日油價查詢")

main_frame = ttk.Frame(root)
main_frame.pack(padx=20, pady=20)

4.創建省份選擇組合框和查詢按鈕:

province_label = ttk.Label(main_frame, text="選擇省份:")
province_label.grid(row=0, column=0, padx=10, pady=10)

provinces = [
"北京", "天津", "河北", "山西", "內蒙古", "遼寧", "吉林", "黑龍江",
"上海", "江蘇", "浙江", "安徽", "福建", "江西", "山東", "河南",
"湖北", "湖南", "廣東", "廣西", "海南", "重慶", "四川", "貴州",
"云南", "西藏", "陜西", "甘肅", "青海", "寧夏", "新疆", "臺灣",
"香港", "澳門"
]
province_var = tk.StringVar()
province_combobox = ttk.Combobox(main_frame, textvariable=province_var, values=provinces)
province_combobox.grid(row=0, column=1, padx=10, pady=10)
province_combobox.current(0)

fetch_button = ttk.Button(main_frame, text="查詢", command=fetch_oil_price)
fetch_button.grid(row=0, column=2, padx=10, pady=10)

5.創建數據顯示標簽和錯誤消息標簽:

update_time_label = ttk.Label(main_frame, text="")
update_time_label.grid(row=1, column=0, columnspan=3)

oil_price_frame = ttk.Frame(main_frame)
oil_price_frame.grid(row=2, column=0, columnspan=3, padx=10, pady=10)

error_label = ttk.Label(main_frame, text="")
error_label.grid(row=3, column=0, columnspan=3)

6.運行主事件循環:

root.mainloop()

7.完整代碼:

import tkinter as tk
from tkinter import ttk
import requests
from datetime import datetime

def fetch_oil_price():
selected_province = province_var.get()
uid = ''
appkey = ''
url = 'http://oil.ylapi.cn/todayoil/info.u'
params = {
'uid': uid,
'appkey': appkey,
'prov': selected_province
}
response = requests.post(url, data=params)
print(response.text) # 打印響應內容

data = response.json()
if 'code' in data:
if data['code'] == '1000':
oil_prices = data['data']
update_time_str = oil_prices['ct']
update_time = datetime.strptime(update_time_str, '%Y-%m-%d %H:%M:%S.%f')
update_time_formatted = update_time.strftime('%Y-%m-%d')

update_time_label.config(text=f"數據更新時間:{update_time_formatted}")

for widget in oil_price_frame.winfo_children():
widget.destroy()

ttk.Label(oil_price_frame, text="類型").grid(row=0, column=0)
ttk.Label(oil_price_frame, text="油價(元/升)").grid(row=0, column=1)

row_num = 1
for key, value in oil_prices.items():
if key.startswith('p'):
type_name = key.replace('p', '') + "號" + ("柴油" if key == 'p0' else "汽油")
ttk.Label(oil_price_frame, text=type_name).grid(row=row_num, column=0)
ttk.Label(oil_price_frame, text=value).grid(row=row_num, column=1)
row_num += 1
else:
error_label.config(text=f"獲取油價失?。簕data['msg']}")
else:
error_label.config(text="獲取油價失敗:未收到有效的響應。")

root = tk.Tk()
root.title("今日油價查詢")

main_frame = ttk.Frame(root)
main_frame.pack(padx=20, pady=20)

province_label = ttk.Label(main_frame, text="選擇省份:")
province_label.grid(row=0, column=0, padx=10, pady=10)

provinces = [
"北京", "天津", "河北", "山西", "內蒙古", "遼寧", "吉林", "黑龍江",
"上海", "江蘇", "浙江", "安徽", "福建", "江西", "山東", "河南",
"湖北", "湖南", "廣東", "廣西", "海南", "重慶", "四川", "貴州",
"云南", "西藏", "陜西", "甘肅", "青海", "寧夏", "新疆", "臺灣",
"香港", "澳門"
]
province_var = tk.StringVar()
province_combobox = ttk.Combobox(main_frame, textvariable=province_var, values=provinces)
province_combobox.grid(row=0, column=1, padx=10, pady=10)
province_combobox.current(0)

fetch_button = ttk.Button(main_frame, text="查詢", command=fetch_oil_price)
fetch_button.grid(row=0, column=2, padx=10, pady=10)

update_time_label = ttk.Label(main_frame, text="")
update_time_label.grid(row=1, column=0, columnspan=3)

oil_price_frame = ttk.Frame(main_frame)
oil_price_frame.grid(row=2, column=0, columnspan=3, padx=10, pady=10)

error_label = ttk.Label(main_frame, text="")
error_label.grid(row=3, column=0, columnspan=3)

root.mainloop()

最后可以使用?pip3 install pyinstaller?打包成exe格式.

使用 Oilprice API 和 Python,我們可以輕松地獲取實時和歷史油價數據。這些數據對于金融分析師、投資者以及其他需要實時油價信息的人士來說是非常寶貴的資源。通過簡單的腳本,你可以快速整合這些數據到你的項目中。

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
如何在Python、PHP和Ruby中調用DNS查詢API接口
下一篇
FILES 文件托管平臺 API 使用教程及解決方案
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
日韩一级完整毛片| 欧美日韩一区二区三区四区五区| 国产无一区二区| 色综合视频在线观看| 欧美一区二区三区啪啪| 亚洲女女做受ⅹxx高潮| 欧美成人精品3d动漫h| 亚洲欧洲性图库| 色吧成人激情小说| 一区二区日韩av| 6080国产精品一区二区| 国产精品福利在线播放| 日韩中文字幕区一区有砖一区 | 国产成人午夜电影网| 色天使色偷偷av一区二区| 欧美系列日韩一区| 国产目拍亚洲精品99久久精品| 婷婷国产v国产偷v亚洲高清| 91麻豆免费看| 亚洲欧美激情视频在线观看一区二区三区| 亚洲成人激情社区| 欧美日韩亚洲不卡| 亚洲一区二区综合| 亚洲不卡av一区二区三区| 欧美色窝79yyyycom| 亚洲一区在线观看视频| 欧亚一区二区三区| 日本伊人精品一区二区三区观看方式| 亚洲午夜在线观看视频在线| 中文字幕在线不卡一区| 亚洲毛片av在线| 亚洲一区二区在线播放相泽| 欧美国产一区二区| 国产精品久久久久一区二区三区| 精品99一区二区三区| 美女高潮久久久| 日韩精品专区在线| 在线观看欧美黄色| 日韩视频免费直播| 久久精品噜噜噜成人av农村| 国产精品一区二区三区网站| 午夜精品免费在线观看| 欧美精品一区二区三区在线播放 | 91国在线观看| 国产成人在线看| 亚洲一区二区三区四区在线观看 | 中文字幕第一区第二区| 7777女厕盗摄久久久| 中日韩免费视频中文字幕| 亚洲国产精品传媒在线观看| 91精品国产入口在线| 99精品视频一区二区三区| 国产丝袜在线精品| 91网页版在线| 91麻豆精品秘密| 91麻豆精品国产91久久久久| 欧美日韩色一区| 在线电影国产精品| 91国产精品成人| 欧美日韩在线三区| 91精品欧美福利在线观看| 欧美男同性恋视频网站| 91九色最新地址| 精品sm捆绑视频| 亚洲免费在线观看视频| 日韩激情av在线| 国产真实乱偷精品视频免| 本田岬高潮一区二区三区| 欧美一区二视频| 亚洲最新视频在线观看| 综合色中文字幕| 国产一区二区美女诱惑| 欧美日韩免费电影| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲欧美在线视频| 日韩精品色哟哟| 欧美日韩一级片在线观看| 欧美国产日韩亚洲一区| 欧美aa在线视频| 欧美视频完全免费看| 椎名由奈av一区二区三区| 国产一区在线观看视频| 欧美日韩你懂的| 一区二区三区免费观看| 国产传媒日韩欧美成人| www国产成人| 日本强好片久久久久久aaa| 91福利资源站| 亚洲精品视频在线观看网站| 91九色02白丝porn| 午夜欧美一区二区三区在线播放| 欧美在线色视频| 9191成人精品久久| 日本欧美韩国一区三区| 欧美一区永久视频免费观看| 久久精品国产亚洲高清剧情介绍| 成人毛片老司机大片| 亚洲一区二区三区四区在线免费观看| 91视频免费播放| 精品一区二区三区在线播放视频| 国产欧美日韩激情| 欧美三级在线看| 成人中文字幕合集| 蜜桃精品视频在线观看| 麻豆成人久久精品二区三区红| www国产成人| 日韩免费观看高清完整版 | 一区二区三区中文在线观看| 国产精品全国免费观看高清 | 91传媒视频在线播放| 91麻豆免费观看| 国产精品18久久久久久久网站| 午夜欧美在线一二页| 国产女同互慰高潮91漫画| 一区二区三区**美女毛片| 国产精品久久久久影院亚瑟| 亚洲欧洲av另类| 欧美大片在线观看一区| 久久久久久久综合| 2014亚洲片线观看视频免费| 91精品国产综合久久久久久| 91久久精品日日躁夜夜躁欧美| 欧美天天综合网| 欧美色综合天天久久综合精品| 高清日韩电视剧大全免费| 91丨九色porny丨蝌蚪| 91精品国产综合久久久久久久久久| 日韩欧美一级在线播放| 亚洲欧洲国产日本综合| 午夜久久电影网| 国产成人在线免费观看| 欧美视频中文字幕| 国产三级欧美三级日产三级99| 精品国产免费一区二区三区四区 | 91国产免费观看| 91精品国产乱码久久蜜臀| 在线精品国精品国产尤物884a| 日韩一级精品视频在线观看| 国产精品国产三级国产三级人妇 | 激情文学综合插| 欧美一二三区在线观看| 亚洲精选免费视频| 东方欧美亚洲色图在线| 日韩视频免费观看高清完整版在线观看| 亚洲成a人片在线不卡一二三区| 国产黑丝在线一区二区三区| 777a∨成人精品桃花网| 国产精品久久久久一区二区三区共| 亚洲图片欧美视频| 欧美日韩国产首页| 久草中文综合在线| 综合婷婷亚洲小说| 国产欧美精品区一区二区三区 | 亚洲成人中文在线| 国产精品乱码一区二三区小蝌蚪| 国内外成人在线| 国产亚洲一区二区在线观看| 亚洲色图丝袜美腿| 日韩精品一二区| 日韩欧美高清dvd碟片| 成人黄色综合网站| 亚洲天天做日日做天天谢日日欢 | 欧美人妇做爰xxxⅹ性高电影 | 国产精品嫩草99a| a美女胸又www黄视频久久| 精品国产成人在线影院| 国产亚洲综合色| 国产东北露脸精品视频| 亚洲不卡一区二区三区| 亚洲精品国产a| 精品国产乱码久久久久久夜甘婷婷 | 极品少妇xxxx精品少妇偷拍 | 欧美午夜理伦三级在线观看| 99精品黄色片免费大全| 岛国精品在线观看| 婷婷开心久久网| 日韩和的一区二区| 欧美国产欧美亚州国产日韩mv天天看完整 | 粉嫩aⅴ一区二区三区四区| 亚洲人吸女人奶水| 亚洲国产精品久久久久婷婷884| 国产免费观看久久| 亚洲一区在线观看免费| 亚洲va韩国va欧美va精品| 日韩影院精彩在线| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国产日韩v精品一区二区| 精品国产一区二区三区av性色 | 粉嫩蜜臀av国产精品网站| 国产精品一区二区在线看| 国产麻豆91精品| 久久综合中文字幕| 日韩精品1区2区3区| 亚洲一二三区不卡| 韩国一区二区在线观看| 欧美性猛交xxxxxx富婆| 精品国产a毛片| 国产精品少妇自拍| 亚洲第一二三四区| 久久免费视频色|