我用requests,它工作得很好。您必須註冊their API key才能使用此服務。這個過程很快,而且我在不到5分鐘的時間就得到了一把鑰匙。這是得到結果的代碼。
import requests
# You must replace <your api key> with the key they give you
api = <your api key>
url = 'https://ridb.recreation.gov/api/v1/trails/USFS/'
params = {'milesmin': 10, 'apikey': api}
r = requests.get(url, params=params)
# In [168]: r.request.url
# Out[168]: 'https://ridb.recreation.gov/api/v1/trails/USFS/?milesmin=10&apikey=<your api key>'
# In [169]: r.text[:500]
# Out[169]: u'{"RECDATA":[{"TypicalTreadWidth":"N\\/A","MinimumTrailWidth":"N\\/A","TypicalTreadCrossSlope
# ":"N\\/A","TerraMotorized":"N\\/A","AllowedSnowUse":"N\\/A","PackSaddleRestricted":"N\\/A",
# "TrailSurface":"N\\/A","TrailNo":"8021SA","AllowedTerraUse":"N\\/A","XcountrySkiAccptDisc":"N\\/A",
# "TrailUSFSID":20,"NonmotorWatercraftManaged":"N\\/A","XcountrySkiManaged":"N\\/A",
# "BicycleManaged":"N\\/A","ShapeLength":0.5105766578900838,"MVUMSymbol":99,
# "MotorcycleManaged":"N\\/A","GEOM":"LINESTRING (-111.69189874799997 39.9735'
從你所說的,端點以斜線結尾,所以添加URL參數後,應該是:'http://ridb.recreation.gov/api.v1.trails/USFS/? milesmin = 10' – pbuck
'https://ridb.recreation.gov/api/v1/trails/USFS/?milesmin = 10'&https://ridb.recreation.gov/api/v1/trails/USFS?milesmin = 10'都爲我工作。 –
@NiteshVerma你說得對。他們工作,我意識到我的URL形成不正確,因爲我在URL的末尾添加了API密鑰,這很好,但我需要密鑰前面的'&'符號以保持其正常工作。標記爲「最佳」的答案解決了發生這些類型的問題。 – MingyJ