iT邦幫忙

0

透過 Python json.load 解析氣象局開放資料發生錯誤

  • 分享至 

  • xImage

背景描述

透過定時執行 python 程式撈取氣象局API的開放資料,
有時候可以正常運行,
有時候卻會報出兩種錯誤

  1. json.decoder.JsonDecodeError: Expecting Value
  2. TypeError: cannot unpack non-iterable NoneType object

上網查說以上情況可能是因為requests回傳的是None,
所以無法正確的被解析,
但我在測試的時候大部分情形都沒問題
想有人有遇過同樣的問題嗎?該如何解決?

###程式碼:

import requests
import json

api_endpoint = "https://opendata.cwb.gov.tw/api/v1/rest/datastore/E-A0015-001?Authorization=開放申請資料的開放授權碼&format=JSON"

data = requests.get(api_endpoint)    
EqDatas = json.loads(data.text)

看更多先前的討論...收起先前的討論...
obarisk iT邦研究生 1 級 ‧ 2022-09-14 22:00:30 檢舉
先檢查 status_code
edwang iT邦新手 4 級 ‧ 2022-09-15 08:18:14 檢舉
感謝Obarisk回覆,
我先來確認一下status code!
用 try .. except ...... 來避免網路的各式各樣的錯誤
edwang iT邦新手 4 級 ‧ 2022-09-16 17:12:08 檢舉
感謝 japhenchen回覆,
try...catch在這段程式碼確實沒有加入,
已加入執行測試
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-09-15 10:53:30

有時候卻會報出兩種錯誤

除了錯誤訊息之外
也可看看報出錯誤當下的data= requests.get(api_endpoint) 值是什麼

edwang iT邦新手 4 級 ‧ 2022-09-16 17:13:58 檢舉

感謝海綿寶寶回覆,
我會再加入看能不能輸出他的值或型別,
說也奇怪後來又都沒報錯...
不過這支程式會長期定時運行,
只能再持續觀察了...

我要發表回答

立即登入回答