可以先去最下方看上課簡報閱讀

環境安裝

1
pip install requests

視情況可改成pip3,詳細可回去翻之前的

建構測試用檔案

請找一個資料夾,用vscode開啟它,並在內部新增一個python檔案,放入以下內容

1
2
3
4
5
6
7
8
9
10
11
12
import requests
import json

params = {

}
url = ''

response = requests.get(url = url,params=params).json()

with open('result.json',mode='w',encoding='utf8') as f:
json.dump(response,f,ensure_ascii=False,indent=4)

首先我們先建立參數字典params,原文全名是parameters
這個字典在發送請求時會由套件自動轉成簡報內提到的格式,讓我們更好操作

requests.get() 是發送get請求的意思,get請求為API的一種方法,其他還有很多方法
這個方法主要用來取得資料,也就是我們著眼的功能

下面的一串是將資料寫入同資料夾內的一個檔案,並將它格式化方便閱讀,此部分之後如果教到資料讀寫會詳細解釋

簡單演示GraphQL的語法

這裡使用中央氣象局的GraphQL資料
此處由於設計風格不同所以檔案內容會稍微更改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import requests
import json

params = {
'Authorization' : 'CWA-3FF8D5E8-035D-4F66-BD63-CFF6EDB21C2D'
}

query = '''
query forecast {
forecast (LocationName: "臺北市") {
Locations {
LocationName,
WeatherDescription {
Time {
StartTime,
WeatherDescription
}
}
}
}
}
'''

url = 'https://opendata.cwa.gov.tw/linked/graphql'

response = requests.post(url=url, params=params, json={'query':query}).json()

with open('result.json',mode='w',encoding='utf8') as f:
json.dump(response,f,ensure_ascii=False,indent=4)

此處先撰寫請求語法以及設定驗證碼參數
然後使用requests.post() 發送請求,並把請求語法和變數包在請求body內

這樣就可以得到一些搜尋結果,且格式和內容是我們想要的

注意此處更改的地方:
函數內的參數除了params還有json,這是因為請求的語法需要包在body裡面傳送

上課簡報

可能需等待字體與內容載入

可憐的高中生🤯 設計的 API簡介