Python如何透過Notion API讀取Table資料
這篇記錄一下 Python要如何透過 Notion API 讀取Table中的相關資料。
簡單來說有三個步驟:
- 申請Notion API的 integration,取得 Secret Key
- 開啟表格的讀取權限
- 透過HTTP來取得資料
步驟1 – 申請取得 Secret Key
# 進入 Notion Developer 的「My Integrations」頁面,點選「Create new integration」。
# 完成 Integration 的相關設定
# 進入 Integration 複製 Secret Key
步驟2 – 開啟Table的讀取權限
# 在 Table 頁面上,點選右上方的「Share」,選擇將這個Table頁面的操作權限分享給誰。
# 選擇要賦予權限的對象,就可以完成分享。
# 如果想要再次確認上面的動作是否有完成,可以再次點到右上方的「Share」。這次出現了剛才指定的分享對象,同時右側顯示這個對象對這個Table有「edit」的權限。
這個分享的步驟記得要完成,否則如果步驟一取得Secret Key後,直接寫程式存取,而沒有先分享該Table的權限,這時會收到 404 的HTTP Status Code。
步驟3 – 透過HTTP存取Table
以下為簡單的 Python 範例程式,直接複製即可。
import requests
database_id = XXXXX
authenticator = XXXXX
header_payload = {
'Authorization': authenticator,
'Content-Type': 'application/json',
'Notion-Version': '2021-05-13'
}
url = 'https://api.notion.com/v1/databases/' + database_id + '/query'
response = requests.request('POST', url, headers=header_payload)
data = response .json()
print(data)
# 簡單的 Table 資料讀取,可以透過以上的方式來達到。
完整的page或是Table相關存取,可參考官方網站的「Developers Reference」,其中有十分詳細的說明,是開發時的好幫手。
接著,再來的議題就是要如何解析這個以JSON描述的資料。