【筆記】用Python呼叫API (二):呼叫API

更新於 發佈於 閱讀時間約 6 分鐘
前一篇我們透過各家交易所的文件確定了我們所需要的API,此篇會根據獲得的文件進行呼叫我們需要的API資料,並取出我們要的資料,先處理ACE的部分。

根據【筆記】用Python呼叫API (一):透過API文件找到需要的API 取得的資訊進行呼叫API,首先先匯入我們需要的套件

# ​用於簡化發送http請求和處理http響應
import requests

# 只有價格是沒有意義的,配上時間才能比較價格是多少
from datetime import datetime

# 看API資料結構時候會用到​
import json

接著,先不寫時間,把呼叫API的流程建立起來

# 定義一個變數為url,把網址放在裡面​
url = "https://ace.io/polarisex/oapi/v2/list/tradePrice"

# 定義一個變數為​response,用requests的get方法,請求url裡面的網址,它會響應這個請求運行的數據跟元數據
response = requests.get(url)

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

# 如果不是狀態回應不是200,則印出狀態碼
else:
print("壞了,根本就不能用啊,ERROR CODE:",response.status_code)

# 印出來​
print(data)

結果:

raw-image

有點難看,我們先讓它排列一下才能取出要的值,這時候就需要用到額外導入的json

# 定義一個變數為url,把網址放在裡面​
url = "https://ace.io/polarisex/oapi/v2/list/tradePrice"

# 定義一個變數為​response,用requests的get方法,請求url裡面的網址,它會響應這個請求運行的數據跟元數據
response = requests.get(url)

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

# 如果不是狀態回應不是200,則印出狀態碼
else:
print("壞了,根本就不能用啊,ERROR CODE:",response.status_code)

# 印出來​
print(formatted_data)

這裡用了json.dumps() 函數中的indent跟sort_keys參數

分別代表的意義如下

indent:用於指定 JSON 字符串的縮進級別,讓資料比較好讀,數字代表著會縮進多少空格。

sort_keys:JSON 的輸出中的鍵值(keys)是否按照字母排序,後面填布林值(True或是False)。


結果:

raw-image


這樣看起來就好觀察了,這裡我們會發現結構是一個大括號{ }包住不同的幣對,不同的幣對裡面包著各自的資訊,裡面的資訊我們需要的是last_price,所以要改寫成這樣:

import requests
from datetime import datetime


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內USDT/TWD的last_price
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)


原本寫的 formatted_data = json.dumps(data, indent=4, sort_keys=True) 要註解掉或是刪掉,因為經過dumps出來的資料會是字串,不是字典,無法被使用。

結果:

原本的地方多了一個逗點,沒看到Orz,放新的

原本的地方多了一個逗點,沒看到Orz,放新的


____

另外

# 呼叫​get("USDT/TWD"),再呼叫get("last_price")
ACE_usdt_twd = data.get("USDT/TWD").get("last_price")

上面這條可以寫成下面這樣

#​ 索引data內的["USDT/TWD"],再索引["last_price"]
ACE_usdt_twd = data["USDT/TWD"]["last_price"]


一樣都可以取得我們要的值,只是差別在於用上面的方式,如果我們要取得的鍵突然不見了,它會回傳 None,下面的方式同樣的情況會引發KeyError,需要另外處理。

留言
avatar-img
留言分享你的想法!
冬霞-avatar-img
發文者
2023/08/23
【筆記】用Python呼叫API (三):完成剩下的呼叫API提及了這篇文章,趕快過去看看吧!
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
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
API(Application Programming Interface,應用程式介面)可以視為不同軟體系統之間的溝通橋梁,讓雙邊可以交換數據並執行各種功能。這篇會記錄產品經理一定要知道的幾個 API 概念,像是常見的錯誤代碼以及不同的 HTTP 方法(如 PUT、GET、POST)和實際案例說明
Thumbnail
API(Application Programming Interface,應用程式介面)可以視為不同軟體系統之間的溝通橋梁,讓雙邊可以交換數據並執行各種功能。這篇會記錄產品經理一定要知道的幾個 API 概念,像是常見的錯誤代碼以及不同的 HTTP 方法(如 PUT、GET、POST)和實際案例說明
Thumbnail
先前幾篇筆記介紹了網路請求,瀏覽器儲存資料的方式,那麼實務上,前端最常需要發送網路請求的時候,就是透過呼叫 API,去向後端工程師發送/請求資料,所以今天來記錄什麼是 API吧!
Thumbnail
先前幾篇筆記介紹了網路請求,瀏覽器儲存資料的方式,那麼實務上,前端最常需要發送網路請求的時候,就是透過呼叫 API,去向後端工程師發送/請求資料,所以今天來記錄什麼是 API吧!
Thumbnail
Axios 如何處理陣列數組資料的傳遞,使用qs套件快速完成吧!
Thumbnail
Axios 如何處理陣列數組資料的傳遞,使用qs套件快速完成吧!
Thumbnail
👨‍💻 簡介 最近想要透過小實作來撰寫筆記,達到做中學的效果,因此就來實作個小爬蟲順便結合前面學到的package做一個小複習。
Thumbnail
👨‍💻 簡介 最近想要透過小實作來撰寫筆記,達到做中學的效果,因此就來實作個小爬蟲順便結合前面學到的package做一個小複習。
Thumbnail
在這一課中,我們將學習如何在Python中使用requests模塊發送HTTP請求。 發送GET請求requests.get() 函數用於發送GET請求。
Thumbnail
在這一課中,我們將學習如何在Python中使用requests模塊發送HTTP請求。 發送GET請求requests.get() 函數用於發送GET請求。
Thumbnail
呼叫API,並透過API響應的內容取到需要的值
Thumbnail
呼叫API,並透過API響應的內容取到需要的值
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News