Notion Table的JSON格式

這篇來紀錄一下,透過Notion API取得的JSON字串,格式如何大致是如何。

首先,我們先了解一下透過Notion API回應的JSON,在格式化的顯示後,大概長什麼樣子,這樣能幫助我們更有效率的解析它。

網路上有很多免費的 JSON Format Viewer 網站,我們就隨手找一個 https://jsonformatter.curiousconcept.com/ 來試試。

範例表格資料

# 以下就用上面這個範例來作說明

Notion Table JSON

# 格式化後,Query Notion Table 後所得到的 JSON 大概是以上的格式。裡面包含了 object、results、next_cursor、與has_more。

Notion Table JSON

# 資料的部份,每一列會以陣列的方式儲存於「results」中。可以看到每一列是以page的型態儲存,你直接點Notion中的資料項,它也的確以page的方式開啟資料列。

資料格式的描述

# 資料列的數值儲存於「properties」中,可以看到type為「number」的資料描述相對較為簡單,Notion中選擇資料為「Text」的type為「rich_text」,因為一些文字的屬性、連結等,描述相對較於複雜,但基本上都相當的淺顯易懂。

因此了解了資料描述方式後,在Python中透過dict的存取方式,就能很容易就能將各資料列的資料解讀出來。

# 列印第2位同學的物理成績
print(jsonObjs['results'][1]['properties']['Score_Phy']['number'])

# 列印第4位同學的姓名
print(jsonObjs['results'][1]['properties']['Name']['title'][0]['text']['content'])