最近需要空氣品質的資料
所以找了
https://pm25.lass-net.org/#apis
裡面有提供一些API
只是他的API需要先解壓縮才能有json檔
但是我目前卡在無法讀取壓縮檔的資料
import urllib
import gzip
import json
url = 'https://pm25.lass-net.org/data/last-all-airbox.json.gz'
f = gzip.open('last-all-airbox.json.gz','r')
jdata = f.read()
f.close()
data = json.loads(jdata)
data
會出現 No such file or directory: 'last-all-airbox.json.gz' 錯誤
請問有哪邊有問題?
last-all-airbox.json.gz 是壓縮檔的名子
還是有其他方法是可以把api 的json是壓縮檔用python讀取?
雖然我對 python 並不太了解。
但從程式碼來看,你根本就沒將其檔案下載回來。
那要怎麼去解壓縮它啊?
錯誤訊息不是也很明白的告訴你了,找不到目錄或是檔案了。
難不成,你以為 python 可以幫你去別人的地方解壓???
你因該要先做檔案下載的動作後才去處理解壓。
星空大說的是正解~ 借貼參考範例碼:
import requests,gzip,json
gzfileUrl="https://pm25.lass-net.org/data/last-all-airbox.json.gz"
gzflieSaveName="last-all-airbox.json.gz"
r = requests.get(gzfileUrl)
open(gzflieSaveName, 'wb').write(r.content)
f = gzip.open(gzflieSaveName,'r')
jdata = f.read()
f.close()
data = json.loads(jdata)
print(data)
小弟初學,爬文後的解決方式:
import urllib
import gzip
import json
url = 'https://pm25.lass-net.org/data/last-all-airbox.json.gz'
file_name = url.split("/")[-1]
urllib.request.urlretrieve(url, file_name)
f = gzip.open(file_name,'r')
jdata = f.read()
f.close()
data = json.loads(jdata)
data