2017-02-21 8 views
0

私はRIDB API(政府レクリエーションデータ)から情報を取得しようとしています。しかし、私はURLパラメータの使い方を混同しています。私は例を探し、多くの異なったことを試みました。URLパラメータ何が間違っていますか?

最初に、私はhttps://ridb.recreation.gov/api/v1/trails/USFS/が最初からうまく動作します。私はトレイル情報を含むJSON結果を得て、完璧です。しかし、https://ridb.recreation.gov/api/v1/trails/USFS/milesmin10またはhttps://ridb.recreation.gov/api/v1/trails/USFS/milesmin=10またはhttps://ridb.recreation.gov/api/v1/trails/USFS?milesmin=10またはhttps://ridb.recreation.gov/api/v1/trails/USFS?milesmin10を例として試してみると、私は何も得られません。添付の画像milesminからわかるように、誰かが私のコードにこれらのパラメータをどのように含めるか、私が間違っていることを説明することができます。

URL Parameters

+0

エンドポイントはスラッシュで終わっていますので、URLパラメータを追加すると、それは次のようになります: 'http://ridb.recreation.gov/api.v1.trails/USFS/? milesmin = 10' – pbuck

+2

'https://ridb.recreation.gov/api/v1/trails/USFS/?milesmin = 10'&' https://ridb.recreation.gov/api/v1/trails/USFS?milesmin = 10'はどちらも私のために働いています。 –

+0

@NiteshVermaあなたが正しいです。彼らはうまくいく、私はURLの末尾にAPIキーを追加していたので、私のURLが誤って形成されていることに気づいたが、それは動作するようにキーの前に '&'記号が必要です。 「ベスト」と記された回答は、起こっている問題の種類を解決します。 – MingyJ

答えて

1

私は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' 
+0

ありがとう!あなたの答えは私が作った間違いを避ける方法を示しています。 私は 'https://ridb.recreation.gov/api/v1/trails/USFS?APIKEY'を持っていましたので、私が' https://ridb.recreation.gov/api/v1/trails/USFS ' "APIKEY?Params"は、そこに "&"記号を使用しないと明らかに機能しません。あなたの方法は明らかに優れているので、ありがとう! – MingyJ

関連する問題