我正在使用urllib发出请求并返回一些数据:
queryURL = "https://hazards.fema.gov/gis/nfhl/rest/services/CSLF/Prelim_CSLF/MapServer/3/query"
params = urllib.parse.urlencode({'f': 'json', 'geometryType': 'esriGeometryPolygon', 'outFields': 'OBJECTID, SHAPE, CSLF_ID, Area_SF', 'returnGeometry': 'false'})
在这里之前我不会遇到任何问题:
req = urllib.request.urlretrieve(queryURL, params)
然后:
urllib.request.urlopen(req)
此时我得到一个错误抛出-
AttributeError: 'tuple' object has no attribute 'timeout'.
我知道它返回了一个不变的元组,因为我格式化了
params
变量。我的问题是,我如何绕过它,以便我可以开始查看我的结果?
jsonResult = json.load(response)
根据要求,这里是回溯:
AttributeError Traceback (most recent call last) <ipython-input-68-cb3f46b2da76> in <module>()
----> 1 urllib.request.urlopen(req)
C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\urllib\request.py in urlopen(url, data, timeout, cafile, capath, cadefault, context)
221 else:
222 opener = _opener
--> 223 return opener.open(url, data, timeout)
224
225 def install_opener(opener):
C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\urllib\request.py in open(self, fullurl, data, timeout)
515 req.data = data
516
--> 517 req.timeout = timeout
518 protocol = req.type
519
AttributeError: 'tuple' object has no attribute 'timeout'