【筆記】用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
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
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響應的內容取到需要的值
Thumbnail
你想像有一個黑盒子,它會跟你說輸入一個input,而會得出什麼Output,而你要把這個Input傳遞給黑盒子是透過http的方式
Thumbnail
你想像有一個黑盒子,它會跟你說輸入一個input,而會得出什麼Output,而你要把這個Input傳遞給黑盒子是透過http的方式
Thumbnail
Restful API 其實就是開放一個 EndPoit 的網路接口給其他人使用,並將要做的事情封裝在該接口內,不需要知道真實運作狀況,只要得到答案即可。
Thumbnail
Restful API 其實就是開放一個 EndPoit 的網路接口給其他人使用,並將要做的事情封裝在該接口內,不需要知道真實運作狀況,只要得到答案即可。
Thumbnail
網址是 API 的門面,大家使用 API 的第一步就是要看它。 第一眼就要讓人就知道這隻 API 在做什麼? 甚至因為遵循標準(目前 REST 是主流),可以類推 API 應該會有什麼功能等等。
Thumbnail
網址是 API 的門面,大家使用 API 的第一步就是要看它。 第一眼就要讓人就知道這隻 API 在做什麼? 甚至因為遵循標準(目前 REST 是主流),可以類推 API 應該會有什麼功能等等。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News