【筆記】用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,需要另外處理。

20會員
18內容數
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
軟體工程師筆記 | Python 怎麼自訂型別,開始用 NewType 吧!在Python的typing模組中,NewType用來創建新的類型,其實是一個現有類型的變體。這對於型別檢查(Type Checking)非常有用,能夠幫助我們更清楚地理解我們的代碼和預期的行為。
Thumbnail
avatar
阿亮 | LJ
2023-08-05
閱讀札記:多多認識自己,用鬼滅角色分析人格特質作者:林萃芬-諮商心理師 從書中解析腳色人格特質,探索天賦潛能,洞悉心理狀態,讓自己度過各種難關。書中能讓自我理解是屬於鬼滅裡的哪一種人格?如何更認識自己? 書摘重點整理以及心得整理: CH1 鬼滅重點主角群角色分析 >竈門炭治郎:源源不斷的正能量,同理每個人的處境 1. 無條件的
avatar
MW
2023-07-07
【子彈筆記101:用10天找回熱情,掌握實踐心得,成為自我管理的達人的3個最佳實踐】開始使用子彈筆記10天,感受到效率大大提升! 子彈筆記很特別!讓我有效回顧過去,點燃熱情,更深入理解自己的心情起伏。這些都轉為超強的做事動力🤯。 以下是我用10天找回熱情,掌握實踐心得,成為自我管理的達人的3個最佳實踐: 最佳實踐1 - 從過去10天的記錄裡,熱情再燃:妳記得10天前熱衷什麼嗎?子
Thumbnail
avatar
王啟樺
2023-05-29
視覺筆記應用:圖解你的人生身為一名教師,我需要專注在課程的設計,這裡包含學生需要知道的知識盤點,教師清不清楚自己到底要學生知道這些的目的是什麼,還有實際在課堂上教學的技術等等。學生的狀況越不好掌控,本質的掌握越重要,這可能就是我對《易經》中「以不變應萬變」的理解吧。
Thumbnail
avatar
琳瑯滿目的高中國文
2023-05-27
<ChatGPT學習筆記> 用ChatGPT創作文字符號藝術使用ChatGPT生成的文字符號圖片分享 文字符號圖是以文字符號、數字、字母等字符組成的圖形藝術形式,可表達各種形狀和圖像。應用範圍廣泛,可手繪或使用計算機程序和人工智能技術生成。
Thumbnail
avatar
米阿吉
2023-03-31
🎤【筆記:運用焦點解決問句找到方向】#心理諮商 今天心理實務課程,老師用《說書人》讓我們去練習,如何使用「量尺問卷」、「目標問句」、「例外問句」、「假設問句」。 她請我們拿出兩張卡,第一張代表:自己目前做的好、值得慶祝得,第二張代表:自己還能進步的地方、想改善的地方,並將上述問句運用在第二張卡上,去看到出路。
Thumbnail
avatar
大吉嶺|閱讀行動派
2022-11-12
閱讀筆記《用大腦喜歡的方式「1人學習」》★不花錢、縮短時間、做好學習的唯一速效讀書法,就是自己一個人不斷地獨自學習!
Thumbnail
avatar
偶希都理
2022-08-18
🎤【閱讀筆記:用輸出做透一件事】《故事》麥奇說:好奇心是人類對于于“找到答案”和“認知閉合”的智力需求,如何運用好奇心呢? 一般人是圍繞著無數個問題,不斷橫向學習,期待一次學完所有相關知識,但在知識爆炸時代,無异是用勺子裝水,學不完的;牛人則是圍繞一個問題,尋找知行合一的閉環——向深處走,向事上練。
avatar
大吉嶺|閱讀行動派
2022-08-03
電子書系列/筆記1:用製作網頁邏輯做電子書,而不是用紙本書的邏輯!「電子書」的確不怎麼像「書」,若要認真定位「電子書」,大概就是以編輯過的內容分章分節,用以「閱讀一本書」的思維去𢑥整出它應有的功能並提供「閱讀一本書」的體驗。說穿了,電子書就是很多個被排版在xhtml而連結起的檔案。
Thumbnail
avatar
換日線
2021-07-15
Woomanpower課程筆記分享 — 用產品與系統思維,來思考你的職涯發展營運力這門課講師 Evonne Tsai 跟大家分享如何用產品與系統思維,來思考你的職涯發展。這是關於她用兩年的人生學到到一堂課,在她還是中階的產品經理時的一個經歷。那時候她被公司要求打造出一個有關監控的新產品,而身為一個產品經理,她希望做出一個符合用戶需求、滿足用戶的體驗的產品,於是便找了保全人員
Thumbnail
avatar
艾兒莎
2021-03-18