iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0
Modern Web

每天一點 API:打造我的生活小工具系列 第 3

Day03 — 從 API 抓資料到 Python,完成第一次呼叫API

  • 分享至 

  • xImage
  •  

昨天認識了 API 與 JSON 的概念,今天主要是動手實際「呼叫 API」,把伺服器上的資料抓回來,並印出來看看。

在我們開始呼叫 API 之前,先簡單了解一下,呼叫 API 到底是什麼意思。

呼叫 API 是什麼意思?

  • 呼叫 API 就是用電腦程式跟另一個服務「說話」的方式。程式把請求送出去,服務端依照規則把結果回傳回來,整個過程就叫做呼叫 API。
  • 就像打電話點餐,你告訴餐廳想吃什麼,餐廳準備好再送給你;在這裡,程式是客戶,服務端是餐廳,API 則是雙方約定的點餐規則。
  • 這樣做的好處是,程式不用自己處理複雜細節,只要照著 API 的規定請求,就能快速方便地取得所需的資料或功能。

電腦世界裡

  • Client(你的電腦程式) → 想要資料
  • Server(遠端的伺服器) → 存有資料
  • API(規則/介面) → 規定你要怎麼問(例如 GET / POST),回來的資料長怎樣(通常是 JSON)

接下來會開始呼叫 API。

第一次呼叫 API

第 1 步:建立程式檔

New-Item main.py -ItemType File

這是指在資料夾裡新建一個 Python 檔。

第 2 步:呼叫 API

import requests  # 幫我們發送 HTTP 請求的套件

requests 套件載進來。

url = "https://jsonplaceholder.typicode.com/todos/1"  # 這是測試 API 的一個網址

設定要去的目標網址(API 位址)。

r = requests.get(url, timeout=10)  # 發送 GET 請求
  • 用 GET 方法向該網址拿資料。
  • timeout=10表示最久等 10 秒;超過就當作失敗,避免卡住。
  • 回來的結果放在變數 r
r.raise_for_status()  # 確保真的成功(不是 404/500)。失敗就丟錯誤,方便知道問題。

檢查回應的狀態碼是不是 200 系列(成功)。

data = r.json()  

把伺服器回的 JSON 內容,轉成 Python 會用的型態。

print("✅ API 呼叫成功!")
print(data)  

把剛才轉好的 data 直接印出來,確認它長什麼樣。

第 3 步:執行

python main.py

看到的結果

✅ API 呼叫成功!
{'userId': 1, 'id': 1, 'title': 'delectus aut autem', 'completed': False}

第 4 步:漂亮列印和取欄位(讓 JSON 更好看,並取出想要的欄位)

import json

json:用來處理/漂亮輸出 JSON 格式的資料

print("== 漂亮列印 ==")
print(json.dumps(data, indent=2, ensure_ascii=False))

先印一行標題提示。

json.dumps(...)data 轉成「排版漂亮」的字串再印出來:

*indent=2:每一層縮排 2 空白,看起來像樹狀。
*ensure_ascii=False:保留非 ASCII 字元(例如中文)不要轉成 \uXXXX

print("\n== 指定欄位 ==")  #\n 代表換行;印出第二段標題
print("任務標題:", data["title"])  #從字典 data 取出 title 欄位並印出
print("是否完成:", "✅" if data["completed"] else "❌")
  • 讀取布林值 data["completed"](True/False)。
  • 是 True 就印「✅」,否則印「❌」。

輸出的結果會更清楚:

== 漂亮列印 ==
{
  "userId": 1,
  "id": 1,
  "title": "delectus aut autem",
  "completed": false
}

== 指定欄位 ==
任務標題: delectus aut autem
是否完成: ❌

第 5 步:存成檔案

把結果存成檔案

with open("todo1.json", "w", encoding="utf-8") as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

print("💾 已存檔 todo1.json")

今日總結

完成了第一次呼叫 API:

  • 知道怎麼用 requests.get() 送出請求

  • 學會 .json() 把回傳結果轉成 Python 字典

  • 練習了漂亮列印、取欄位、存檔


上一篇
Day02 — 10 分鐘理解 API 與 JSON,完成你的第一支讀取程式
系列文
每天一點 API:打造我的生活小工具3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言