攤平巢狀的 JSON
JSON 資料的一大特色是可以巢狀:某個屬性的值本身可以是由多組屬性與值所組成。將這種巢狀資料解包(或稱攤平)到各自的 dataframe 欄位後,會更好用。pandas.io.json 子模組提供了 json_normalize() 函式,正是用來做這件事。
Yelp API 的回應資料是巢狀的。你的工作是把 coordinates 和 location 欄位中下一層的資料攤平出來。
已經匯入 pandas(作為 pd)與 requests。API 呼叫的結果已存成 response。
本練習屬於課程
使用 pandas 的精實資料導入
練習說明
- 從
pandas的io.json子模組載入json_normalize()函式。 - 從
response取出 JSON 資料並指定給data。 - 使用
json_normalize()將 businesses 資料攤平並載入為一個 dataframe,命名為cafes。將sep參數設為底線(_),而非句點。 - 顯示
data的前幾列。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Load json_normalize()
____
# Isolate the JSON data from the API response
data = ____
# Flatten business data into a dataframe, replace separator
cafes = ____(data["businesses"],
____)
# View data
print(cafes.head())