我在使用python3中的请求库时遇到了问题。在
这是我的代码:url = 'https://www.contrataciones.gov.py/images/opendata/planificaciones/2016.csv'
r = requests.get(url)
reader = csv.DictReader(r.content.splitlines())
当我用python2运行脚本时,它工作得非常好,但是在python3中,requests.get(url)行出现了一个错误:
^{pr2}$
我做错什么了?我知道如何解码内容等等,但是直接从请求中获取错误会让我感到困惑。在
更新:完整的回溯-看起来可能和pickle有关?在File "fetch.py", line 128, in
main()
File "fetch.py", line 115, in main
id_list = fetchList(options.year)
File "/usr/local/lib/python3.6/site-packages/ratelimit/__init__.py", line 21, in func_wrapper
ret = func(*args, **kargs)
File "fetch.py", line 89, in fetchList
r = requests.get(url)
File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 70, in get
return request('get', url, params=params, **kwargs)
File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 56, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.6/site-packages/requests_cache/core.py", line 126, in request
**kwargs
File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 488, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.6/site-packages/requests_cache/core.py", line 97, in send
response, timestamp = self.cache.get_response_and_time(cache_key)
File "/usr/local/lib/python3.6/site-packages/requests_cache/backends/base.py", line 70, in get_response_and_time
if key not in self.responses:
File "/usr/local/Cellar/python3/3.6.0_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_collections_abc.py", line 666, in __contains__
self[key]
File "/usr/local/lib/python3.6/site-packages/requests_cache/backends/storage/dbdict.py", line 163, in __getitem__
return pickle.loads(bytes(super(DbPickleDict, self).__getitem__(key)))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 359: ordinal not in range(128)