Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python URL参数我做错了什么?_Python_Api_Parameters - Fatal编程技术网

Python URL参数我做错了什么?

Python URL参数我做错了什么?,python,api,parameters,Python,Api,Parameters,我试图从RIDB API(政府娱乐数据)中获取信息。然而,我对如何使用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/trai

我试图从RIDB API(政府娱乐数据)中获取信息。然而,我对如何使用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是一个可接受的参数,请有人解释如何将这些参数包括在我的代码中和/或我明显做错了什么

我用过,效果很好。您必须注册才能使用此服务。过程很快,不到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'
导入请求
#你必须换上他们给你的钥匙
api=
url='1〕https://ridb.recreation.gov/api/v1/trails/USFS/'
params={'milesmin':10,'apikey':api}
r=requests.get(url,params=params)
#在[168]中:r.request.url
#Out[168]:'https://ridb.recreation.gov/api/v1/trails/USFS/?milesmin=10&apikey='
#在[169]中:r.text[:500]
#Out[169]:u'{“RECDATA”:[{“TypicalTreadWidth”:“N\\/A”,“MinimumTrailWidth”:“N\\/A”,“TypicalTreadCrossSlope”
#“:”N\\/A“,”Terramotive“:”N\\/A“,”AllowedSnowUse“:”N\\\/A“,”PacksAddlerRestricted“:”N\\\/A“,
#“TrailSurface”:“N\\/A”、“TrailNo”:“8021SA”、“AllowedTerraUse”:“N\\/A”、“XcountrySkiAccptDisc”:“N\\/A”,
#“TrailUSFSID”:20,“非机动船舶管理”:“N\\/A”,“XcountrySkiManaged”:“N\\/A”,
#“BicycleManaged”:“N\\/A”,“形状长度”:0.5105766578900838,“MVUMSymbol”:99,
#“摩托车管理”:“N\\/A”,“GEOM”:“线串(-111.69189874799997 39.9735”

正如您所说,端点以斜杠结尾,因此在其后面添加URL参数应该是:
http://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?milesmin=10
两者都在为我。@NiteshVerma你是对的。它们确实有效,我意识到我的URL格式不正确,因为我在URL的末尾添加了API键,这很好,但我需要在键之前加上“&”符号以保持它的工作。答案标记为“最佳”“解决了这些类型的问题。谢谢!您的回答显示了一种避免我所犯错误的方法。我有
https://ridb.recreation.gov/api/v1/trails/USFS?APIKEY
所以当我添加参数时,我有
https://ridb.recreation.gov/api/v1/trails/USFS?APIKEY?Params
如果不使用“&”,它显然不起作用符号在那里。你的方法显然是优越的,所以谢谢你!