Python Tips: 獲取 API 資料

 透過 API 來抓取資料算是一個滿基本的能力, 以下用一個簡單的例子來抓取匯率資料. 抓取API主要用到的 library 為 requests, 我們只用 GET() 的方式來獲取 data. 

 # Get Daily Exchange rate via API
 import requests
 url = "https://tw.rter.info/capi.php"

 def get_data(url):
    return requests.get(url).json()

 data = get_data(url)

抓下的資料如下圖.

格式化後.
 {
    'USDFKP': {'Exrate': 0.787478, 'UTC': '2024-01-18 20:59:59'}, 
    'USDITL': {'Exrate': 1700.272217, 'UTC': '2017-02-24 19:34:31'}, 
    'USDCNH': {'Exrate': 7.21697, 'UTC': '2024-01-18 20:59:59'}, 
    'USDLAK': {'Exrate': 20668.37752, 'UTC': '2024-01-18 20:59:59'}, 
    'USDZMW': {'Exrate': 26.365381, 'UTC': '2024-01-18 20:59:59'}, 
    'USDAOA': {'Exrate': 831.5, 'UTC': '2024-01-18 20:59:59'}, 
    'USDTTD': {'Exrate': 6.790277, 'UTC': '2024-01-18 20:59:59'}, 
    'USDNAD': {'Exrate': 19.055, 'UTC': '2024-01-18 20:59:59'}, 
    'USDUSD': {'Exrate': 1.0, 'UTC': '2024-01-18 20:59:59'}, 
    'USDSVC': {'Exrate': 8.750276, 'UTC': '2024-01-18 20:59:59'}, 
    'USDMXN': {'Exrate': 17.187937, 'UTC': '2024-01-18 20:59:59'}, 
    ...
 }

我們可以透過迴圈的方式把資料取出來, 並存到另外的 DF 或是 DB.
 # 讀取API data
 api_data = []
 for k, v in data.items():
    row = []
 	# # From
    row.append(k[0:3])
    
    # To
    row.append(k[3:])
    
    # exchange rate
    row.append(v['Exrate'])
    
    # timestamp
    row.append(v['UTC'])

    api_data.append(row)

取出後的資料如下.


透過這個方式, 可以相當方便的提取的很多好用的訊息.

張貼留言

0 留言