【发布时间】:2018-08-17 17:02:08
【问题描述】:
我正在使用 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)
根据要求,这里是 Traceback:
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'
【问题讨论】:
-
你能告诉我们回溯,而不仅仅是错误的描述吗?
-
好的,添加了回溯。
标签: python python-requests tuples urllib attributeerror