【筆記】用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
2023/10/08
2023/10/08
看更多
你可能也想看
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
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 快速輕鬆地識別加密貨幣暴漲。
Thumbnail
註冊直接點擊或輸入邀請碼 👉幣託 7006679531      👉MAX e8bd7b20
Thumbnail
註冊直接點擊或輸入邀請碼 👉幣託 7006679531      👉MAX e8bd7b20
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News