jianxu305 / nCov2019_analysis

Analysis of 2019-nCov coronavirus data
GNU General Public License v3.0
117 stars 65 forks source link

产生一个报错 utils.load_chinese_data() #5

Closed JiaxiangBU closed 4 years ago

JiaxiangBU commented 4 years ago
data = utils.load_chinese_data()
URLError: <urlopen error [WinError 10054] 远程主机强迫关闭了一个现有的连接。>
报错信息 ```python --------------------------------------------------------------------------- ConnectionResetError Traceback (most recent call last) D:\install\miniconda\lib\urllib\request.py in do_open(self, http_class, req, **http_conn_args) 1316 h.request(req.get_method(), req.selector, req.data, headers, -> 1317 encode_chunked=req.has_header('Transfer-encoding')) 1318 except OSError as err: # timeout error D:\install\miniconda\lib\http\client.py in request(self, method, url, body, headers, encode_chunked) 1228 """Send a complete request to the server.""" -> 1229 self._send_request(method, url, body, headers, encode_chunked) 1230 D:\install\miniconda\lib\http\client.py in _send_request(self, method, url, body, headers, encode_chunked) 1274 body = _encode(body, 'body') -> 1275 self.endheaders(body, encode_chunked=encode_chunked) 1276 D:\install\miniconda\lib\http\client.py in endheaders(self, message_body, encode_chunked) 1223 raise CannotSendHeader() -> 1224 self._send_output(message_body, encode_chunked=encode_chunked) 1225 D:\install\miniconda\lib\http\client.py in _send_output(self, message_body, encode_chunked) 1015 del self._buffer[:] -> 1016 self.send(msg) 1017 D:\install\miniconda\lib\http\client.py in send(self, data) 955 if self.auto_open: --> 956 self.connect() 957 else: D:\install\miniconda\lib\http\client.py in connect(self) 1391 self.sock = self._context.wrap_socket(self.sock, -> 1392 server_hostname=server_hostname) 1393 D:\install\miniconda\lib\ssl.py in wrap_socket(self, sock, server_side, do_handshake_on_connect, suppress_ragged_eofs, server_hostname, session) 411 context=self, --> 412 session=session 413 ) D:\install\miniconda\lib\ssl.py in _create(cls, sock, server_side, do_handshake_on_connect, suppress_ragged_eofs, server_hostname, context, session) 852 raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets") --> 853 self.do_handshake() 854 except (OSError, ValueError): D:\install\miniconda\lib\ssl.py in do_handshake(self, block) 1116 self.settimeout(None) -> 1117 self._sslobj.do_handshake() 1118 finally: ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。 During handling of the above exception, another exception occurred: URLError Traceback (most recent call last) in ----> 1 data = utils.load_chinese_data() D:\work\nCov2019_analysis\src\utils.py in load_chinese_data() 27 28 def load_chinese_data(): ---> 29 data = pd.read_csv(_DXY_DATA_PATH_) 30 data['updateTime'] = pd.to_datetime(data['updateTime']) # original type of updateTime after read_csv is 'str' 31 data['updateDate'] = data['updateTime'].dt.date # add date for daily aggregation D:\install\miniconda\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision) 700 skip_blank_lines=skip_blank_lines) 701 --> 702 return _read(filepath_or_buffer, kwds) 703 704 parser_f.__name__ = name D:\install\miniconda\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds) 411 compression = _infer_compression(filepath_or_buffer, compression) 412 filepath_or_buffer, _, compression, should_close = get_filepath_or_buffer( --> 413 filepath_or_buffer, encoding, compression) 414 kwds['compression'] = compression 415 D:\install\miniconda\lib\site-packages\pandas\io\common.py in get_filepath_or_buffer(filepath_or_buffer, encoding, compression, mode) 200 201 if _is_url(filepath_or_buffer): --> 202 req = _urlopen(filepath_or_buffer) 203 content_encoding = req.headers.get('Content-Encoding', None) 204 if content_encoding == 'gzip': D:\install\miniconda\lib\urllib\request.py in urlopen(url, data, timeout, cafile, capath, cadefault, context) 220 else: 221 opener = _opener --> 222 return opener.open(url, data, timeout) 223 224 def install_opener(opener): D:\install\miniconda\lib\urllib\request.py in open(self, fullurl, data, timeout) 523 req = meth(req) 524 --> 525 response = self._open(req, data) 526 527 # post-process response D:\install\miniconda\lib\urllib\request.py in _open(self, req, data) 541 protocol = req.type 542 result = self._call_chain(self.handle_open, protocol, protocol + --> 543 '_open', req) 544 if result: 545 return result D:\install\miniconda\lib\urllib\request.py in _call_chain(self, chain, kind, meth_name, *args) 501 for handler in handlers: 502 func = getattr(handler, meth_name) --> 503 result = func(*args) 504 if result is not None: 505 return result D:\install\miniconda\lib\urllib\request.py in https_open(self, req) 1358 def https_open(self, req): 1359 return self.do_open(http.client.HTTPSConnection, req, -> 1360 context=self._context, check_hostname=self._check_hostname) 1361 1362 https_request = AbstractHTTPHandler.do_request_ D:\install\miniconda\lib\urllib\request.py in do_open(self, http_class, req, **http_conn_args) 1317 encode_chunked=req.has_header('Transfer-encoding')) 1318 except OSError as err: # timeout error -> 1319 raise URLError(err) 1320 r = h.getresponse() 1321 except: URLError: ```
JiaxiangBU commented 4 years ago

发现是打开这个文档的权限问题

> # "../src/utils.py"
> df <- read_csv("https://raw.githubusercontent.com/BlankerL/DXY-2019-nCoV-Data/master/csv/DXYArea.csv")
Error in open.connection(con, "rb") : 
  schannel: failed to receive handshake, SSL/TLS connection failed
JiaxiangBU commented 4 years ago

那我只能 clone 数据仓库,定时 pull 了。 close 了。

JiaxiangBU commented 4 years ago

是否考虑这个情况下,修改load_chinese_data()函数,clone 下来再去读数据?

jianxu305 commented 4 years ago

I have never encountered this problem. Probably just some accidental network problems?

JiaxiangBU commented 4 years ago

I have never encountered this problem. Probably just some accidental network problems?

I try again, probably my family internet bans this connection. I find the data repo is not very large so I can easily clone it. I think this issue could be closed.