【筆記】用Python呼叫API (三):完成剩下的呼叫API

更新於 發佈於 閱讀時間約 11 分鐘
上一篇我們呼叫ACE的幣對價格API,並取出我們要值(USDT/TWD),此篇我們會繼續完成MAX跟BitoPro。

根據【筆記】用Python呼叫API (二):呼叫API,我們繼續處理MAX跟BitoPro的部分,先MAX

我們根據之前獲得的MAX API,透過同樣的方法觀察一下數據的結構:

import requests
import json

url = "https://max-api.maicoin.com/api/v2/tickers"
response = requests.get(url)

#如果程式狀態回應是200,​那回應將會解析成json格式的數據,存在變數data中
if response.status_code == 200:
data = response.json()
#json.dumps將程式作用的對象(像是 字典、列表)進行格式化輸出
formatted_data = json.dumps(data, indent=4)
print(formatted_data)

else:
print("壞了,根本就不能用啊,ERROR CODE:",response.status_code)


結果:

raw-image

根據響應的內容,我們可先取外層的"usdttwd"再取內層的價格,它提供的價格分買價、賣價、最高、最低以及最新,這裡取最新價"last"

import requests
import json

url = "https://max-api.maicoin.com/api/v2/tickers"
response = requests.get(url)

if response.status_code == 200:
data = response.json()
MAX_usdt_twd = data.get("usdttwd").get("last")
print(f"MAX 的USDT/TWD匯率: {MAX_usdt_twd}")
else:
print("壞了,根本就不能用啊,ERROR CODE:",response.status_code)

結果:

raw-image


另外

raw-image


如果確定程式是可以運行的,print(formatted_data)要寫在1跟2的位置都可以正常運行,寫在2是為了紀錄人類(?)直線的思路,但它們還是有點區別:

放在1代表著當響應狀態是200的才會印出來,非200就會執行else,像是我把MAX的請求網址刪一個字

raw-image

放在2代表無論如何都會印出來,只是當響應狀態(比如500)出現時,由於回傳的內容是None,就會出現錯誤,同樣跟1的情況,放在2的位置,得到的回應是

raw-image


MAX處理好了,接下來是BitoPro,一樣用同樣的方法先看結構:

import requests
import json

url = "https://api.bitopro.com/v3/tickers/usdt_twd"
response = requests.get(url)

if response.status_code == 200:
data = response.json()
formatted_data = json.dumps(data, indent=4, sort_keys=True)
print(formatted_data)

else:
print("壞了,根本就不能用啊,ERROR CODE::",response.status_code)

結果:

raw-image

根據響應的內容,我們需要先取"data",再取最新價格"lastPrice"

import requests
import json

url = "https://api.bitopro.com/v3/tickers/usdt_twd"
response = requests.get(url)

if response.status_code == 200:
data = response.json()
BitoPro_usdt_twd = data.get("data").get("lastPrice")
print(f"BitoPro 的USDT/TWD匯率: {BitoPro_usdt_twd}")
else:
print("壞了,根本就不能用啊,ERROR CODE::",response.status_code)

結果:

raw-image

BitoPro回傳的數據小數點有點多,MAX跟ACE都是三位,我們可以控制一下它小數點的長度

import requests
import json

url = "https://api.bitopro.com/v3/tickers/usdt_twd"
response = requests.get(url)

if response.status_code == 200:
data = response.json()
BitoPro_usdt_twd = data.get("data").get("lastPrice")
#定義 formatted_BitoPro,它是BitoPro_usdt_twd 被轉成浮點數後,格式化限制為小數點三位
formatted_BitoPro = "{:.3f}".format(float(BitoPro_usdt_twd))
print(f"BitoPro 的USDT/TWD匯率: {formatted_BitoPro}")
else:
print("壞了,根本就不能用啊,ERROR CODE::",response.status_code)

先用float讓BitoPro_usdt_twd變成浮點數,再透過format把小數點格式化為三位

結果:

raw-image

至此價格都抓到了,那就把它們拼起來吧,至於怎麼拼,共用的套件不用重複放,其他的依序放就可以了,之前透過Beautiful Soup 4抓的台銀匯率也放在一起

import requests
from bs4 import BeautifulSoup
from datetime import datetime

### ACE
url = "https://ace.io/polarisex/oapi/v2/list/tradePrice"
response = requests.get(url)

# 獲取當下時間
current_time = datetime.now()

# 格式化當下時間並印出
formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
print(f"\n請求時間:{formatted_time}")

#如果程式狀態回應是200,​那回應將會解析成json格式的數據,存在變數data中
if response.status_code == 200:
data = response.json()
ACE_usdt_twd = data.get("USDT/TWD").get("last_price")

#變數字串化
print(f"ACE 的USDT/TWD匯率: {ACE_usdt_twd}")

else :
print("壞了,根本就不能用啊,ERROR CODE:",response.status_code)



### MAX
url = "https://max-api.maicoin.com/api/v2/tickers"
response = requests.get(url)

#如果程式狀態回應是200,​那回應將會解析成json格式的數據,存在變數data中
if response.status_code == 200:
data = response.json()
MAX_usdt_twd = data.get("usdttwd").get("last")

#變數字串化
print(f"MAX 的USDT/TWD匯率: {MAX_usdt_twd}")

else :
print("壞了,根本就不能用啊,ERROR CODE:",response.status_code)



### BitoPro
url = "https://api.bitopro.com/v3/tickers/usdt_twd"
response = requests.get(url)

if response.status_code == 200:
data = response.json()
BitoPro_usdt_twd = data.get("data").get("lastPrice")
#定義 formatted_BitoPro,它是BitoPro_usdt_twd 被轉成浮點數後,格式化限制為小數點三位
formatted_BitoPro = "{:.3f}".format(float(BitoPro_usdt_twd))

#變數字串化
print(f"BitoPro 的USDT/TWD匯率: {formatted_BitoPro}")
else:
print("壞了,根本就不能用啊,ERROR CODE::",response.status_code)



#台灣銀行牌告匯率網頁
url = "https://rate.bot.com.tw/xrt?Lang=zh-TW"
#定義一個變數為response,它是使用requests套件的get函式,對指定的url發起請求。
response = requests.get(url)
#將回應內容轉換為純文字
html_doc = response.text

# 使用BeautifulSoup解析HTML內容
soup = BeautifulSoup(html_doc, "html.parser")

# 找到該元素
element = soup.find("td", {"data-table": "本行即期賣出", "class": "rate-content-sight"})

# 提取出數字
number = element.text.strip()
print(f"台灣銀行 的USD/TWD匯率:{number}")

結果:

raw-image

都抓到了,這樣子的程式碼雖然是可以用,實際上不太好管理,比如想要修改某個網址,由於放在不同的地方,導致改起來很麻煩,下一篇會基於上方的內容把重複的地方模組化,讓程式碼好看一些,也便於管理。

留言
avatar-img
留言分享你的想法!
冬霞-avatar-img
發文者
2023/08/27
【筆記】用Python呼叫API (四):呼叫API模組化提及了這篇文章,趕快過去看看吧!
阿Han-avatar-img
2023/08/25
爬蟲很有趣
avatar-img
冬霞的沙龍
22會員
18內容數
冬霞的沙龍的其他內容
2023/10/22
用程式協助尋找殖利率跟可以進場的點位
Thumbnail
2023/10/22
用程式協助尋找殖利率跟可以進場的點位
Thumbnail
2023/10/15
利用git把檔案推到github上
Thumbnail
2023/10/15
利用git把檔案推到github上
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
展示「搬磚」交易紀錄與對帳單,真實呈現投資理財過程與成效─套利876元。
Thumbnail
展示「搬磚」交易紀錄與對帳單,真實呈現投資理財過程與成效─套利876元。
Thumbnail
展示「搬磚」交易紀錄與對帳單,真實呈現投資理財過程與成效─套利491元。
Thumbnail
展示「搬磚」交易紀錄與對帳單,真實呈現投資理財過程與成效─套利491元。
Thumbnail
展示「手動搬磚」交易紀錄與對帳單,真實呈現投資理財過程與成效─手動搬磚套利1,381元。 對搬磚有興趣,想瞭解何謂搬磚、怎麼搬磚與自動搬磚的讀者可以參考這篇文章: 【區塊鏈|搬磚套利】每月加薪7千元的套利神器─BITGIN 搬磚套利機器人
Thumbnail
展示「手動搬磚」交易紀錄與對帳單,真實呈現投資理財過程與成效─手動搬磚套利1,381元。 對搬磚有興趣,想瞭解何謂搬磚、怎麼搬磚與自動搬磚的讀者可以參考這篇文章: 【區塊鏈|搬磚套利】每月加薪7千元的套利神器─BITGIN 搬磚套利機器人
Thumbnail
一個實用的python程序快速幫你過濾出成交量大增的虛擬貨幣 金融界有一句很知名的話 量先行 通常成交量放大伴隨而來的就是股價的拉抬 重點就在這裡,但是投資人總不可能一擋一擋去看成交量吧太花時間了 這段程式碼就是快速篩選出市場上成交量徒增的虛擬貨幣 from binance.client
Thumbnail
一個實用的python程序快速幫你過濾出成交量大增的虛擬貨幣 金融界有一句很知名的話 量先行 通常成交量放大伴隨而來的就是股價的拉抬 重點就在這裡,但是投資人總不可能一擋一擋去看成交量吧太花時間了 這段程式碼就是快速篩選出市場上成交量徒增的虛擬貨幣 from binance.client
Thumbnail
展示「手動搬磚」交易紀錄與對帳單,真實呈現投資理財過程與成效─手動搬磚套利2,976元。 對搬磚有興趣,想瞭解何謂搬磚、怎麼搬磚與自動搬磚的讀者可以參考這篇文章: 【區塊鏈|搬磚套利】每月加薪7千元的套利神器─BITGIN 搬磚套利機器人
Thumbnail
展示「手動搬磚」交易紀錄與對帳單,真實呈現投資理財過程與成效─手動搬磚套利2,976元。 對搬磚有興趣,想瞭解何謂搬磚、怎麼搬磚與自動搬磚的讀者可以參考這篇文章: 【區塊鏈|搬磚套利】每月加薪7千元的套利神器─BITGIN 搬磚套利機器人
Thumbnail
展示「手動搬磚」交易紀錄與對帳單,真實呈現投資理財過程與成效─手動搬磚套利852元。 對搬磚有興趣,想瞭解何謂搬磚、怎麼搬磚與自動搬磚的讀者可以參考這篇文章: 【區塊鏈|搬磚套利】每月加薪7千元的套利神器─BITGIN 搬磚套利機器人
Thumbnail
展示「手動搬磚」交易紀錄與對帳單,真實呈現投資理財過程與成效─手動搬磚套利852元。 對搬磚有興趣,想瞭解何謂搬磚、怎麼搬磚與自動搬磚的讀者可以參考這篇文章: 【區塊鏈|搬磚套利】每月加薪7千元的套利神器─BITGIN 搬磚套利機器人
Thumbnail
展示「手動搬磚」交易紀錄與對帳單,真實呈現投資理財過程與成效─手動搬磚套利521元。 對搬磚有興趣,想瞭解何謂搬磚、怎麼搬磚與自動搬磚的讀者可以參考這篇文章: 【區塊鏈|搬磚套利】每月加薪7千元的套利神器─BITGIN 搬磚套利機器人
Thumbnail
展示「手動搬磚」交易紀錄與對帳單,真實呈現投資理財過程與成效─手動搬磚套利521元。 對搬磚有興趣,想瞭解何謂搬磚、怎麼搬磚與自動搬磚的讀者可以參考這篇文章: 【區塊鏈|搬磚套利】每月加薪7千元的套利神器─BITGIN 搬磚套利機器人
Thumbnail
完成上一篇沒完成的MAX跟BitoPro API呼叫
Thumbnail
完成上一篇沒完成的MAX跟BitoPro API呼叫
Thumbnail
你有沒有錯過 Binance 上的一個大型加密硬幣泵? 也許您正忙於工作,或者只是不夠快而無法抓住機會。 這是一種令人沮喪的感覺,尤其是當你看到價格在你眼前飛漲時。 但是,如果有一種方法可以實時識別這些爆漲? 在本文中,我們將向您展示如何使用 Python 快速輕鬆地識別加密貨幣暴漲。
Thumbnail
你有沒有錯過 Binance 上的一個大型加密硬幣泵? 也許您正忙於工作,或者只是不夠快而無法抓住機會。 這是一種令人沮喪的感覺,尤其是當你看到價格在你眼前飛漲時。 但是,如果有一種方法可以實時識別這些爆漲? 在本文中,我們將向您展示如何使用 Python 快速輕鬆地識別加密貨幣暴漲。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News