前言
如果我們想從某個外部服務取得資料,那我們需要知道資料儲存在哪裡。藉由API 端點和 API 呼叫,可以讓我們取得想要資料。底下我們藉由一個簡單的 API 呼叫實作, 取得國際太空站目前位置,包括經度和緯度。
實作
導入必要的函式庫: requests. requests 模組可讓您使用 Python 發送 HTTP 請求。HTTP 請求傳回一個包含所有回應資料(內容、編碼、狀態等)的回應物件。
代碼
import requests
api_url = "http://api.open-notify.org/iss-now.json"
response = requests.get(url=api_url)
if response.status_code == 200:
data = response.json()
latitude = float(data['iss_position']['latitude'])
longitude = float(data['iss_position']['longitude'])
print(f"空間站目前的緯度及經度: ({latitude}, {longitude})")
elif response.status_code == 404:
print("The requested resource was not found.")
else:
print("Failed to retrieve data from the API.")
註: 簡述 requests.Response() 回應物件 常用 屬性/方法描述
json() 傳回結果的 JSON 物件(如果結果以 JSON 格式寫入,否則會引發錯誤)。
raise_for_status() 如果發生錯誤,此方法傳回一個 HTTPError 物件。
reason 傳回與狀態碼對應的文字。
request 傳回請求此回應的請求物件。
status_code 傳回一個指示狀態的數字(200 表示正常,404 表示找不到)。
text 回傳回應的內容,採用 Unicode 編碼。
url 回傳回應的 URL。
執行:
查看地圖所在
https://www.latlong.net/Show-Latitude-Longitude.html
進一步
為了更好在世界地圖上標示經緯度 (latitude / longitude) 位置,我們將代碼加以修改進化。
導入必要的函式庫: Folium,Folium 是 Python 的地圖套件,互動式地圖、GPS 地圖、Marker標記、即時位置地圖
import folium
m = folium.Map(location=[latitude, longitude], zoom_start=1)
folium.Marker(
[latitude, longitude],
popup="ISS"
).add_to(m)
m.save("iss_map.html")
執行生成 iss_map.html,使用瀏覽器檢視
留言