python 由外部取得 JSON API 資料

我們這次的目標是將外部的資料(開放的 JSON)取得資訊變成我們自己的
取得內容
首先:先 import 我們需要的項目
設定一個變數是 api 路徑 ,然後取回即可


import json 
from urllib import request

url = 'https://works.ioa.tw/weather/api/weathers/289.json'
data = request.urlopen(url).read().decode("utf-8")

print (json.loads(data))

會取得這樣的東西,如下圖所示

很難閱讀對吧!這個時候就要請熊貓們出場來處理一下這個資料了

格式化內容

我們的資料經過 json.loads 已經將取回的字串格式資料轉成 正常的 json 接著我們要 import pandas


import json 
from urllib import request
import pandas as pd


# 天氣資料取得
url = 'https://works.ioa.tw/weather/api/weathers/289.json'
json_data = request.urlopen(url).read().decode("utf-8")
json_data = json.loads(json_data);

frame = pd.DataFrame.from_dict(json_data);
print(frame);

如果直接執行上面這個語法,基本上是會壞掉的 為什麼呢?因為我們的 json 不是單純的陣列結構,如下圖:
所以我們要作一點小小的修改

frame = pd.DataFrame.from_dict(json_data);


要改成

frame = pd.DataFrame.from_dict(json_data['histories']);


好了這樣執行的話,印出來的就會是這樣整理好的值

留言