Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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 Can';出现二进制api(连接)错误时,请不要继续程序_Python_Api_Binance - Fatal编程技术网

Python Can';出现二进制api(连接)错误时,请不要继续程序

Python Can';出现二进制api(连接)错误时,请不要继续程序,python,api,binance,Python,Api,Binance,我正在通过AWS-EC2上的Binance api从Binance获取OHLCV数据。 但有时(几天一次)会出现错误“104,‘EconReset’”,程序停止 该程序是用Python3.7.3编写的,在AWS-EC2上运行 代码如下。但此代码无法继续 我想在出现任何api或连接错误时继续运行程序 我应该如何处理这个错误 while True: .............. try : klines = client.get_historical_klines

我正在通过AWS-EC2上的Binance api从Binance获取OHLCV数据。 但有时(几天一次)会出现错误“104,‘EconReset’”,程序停止

该程序是用Python3.7.3编写的,在AWS-EC2上运行

代码如下。但此代码无法继续

我想在出现任何api或连接错误时继续运行程序

我应该如何处理这个错误

while True:

    ..............

    try :
        klines = client.get_historical_klines(ticker_symbol, Client.KLINE_INTERVAL_1MINUTE, _from_str, _until_str)

    except BinanceAPIException as e:
        print(e)
        print('Something went wrong. Error occured at %s. Wait for 1 hour.' % (datetime.datetime.now().astimezone(timezone('UTC'))))
        sleep(3600)
        continue

    ..............
所有错误质量如下所示

回溯(最近一次呼叫最后一次): 文件 “/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/urllib3/connectionpool.py”, 第600行,在urlopen中 chunked=chunked)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/urllib3/connectionpool.py”, 第384行,在请求中 六、从(e,无)文件“”中的第2行“从文件中升起” “/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/urllib3/connectionpool.py”, 第380行,输入请求 httplib_response=conn.getresponse()文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py”, 第1321行,在getresponse中 response.begin()文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py”, 第296行,开始 版本,状态,原因=self.\u read\u status()文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py”, 第257行,处于读取状态 line=str(self.fp.readline(_MAXLINE+1),“iso-8859-1”)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/socket.py”,第行 589,在readinto中 将self._sock.recv_返回(b)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/urllib3/contrib/pyopenssl.py”, 第312行,收进 将self.recv_返回(*args,**kwargs)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/urllib3/contrib/pyopenssl.py”, 第302行,记录到 升高插座错误(str(e))OSError:(104,'ECONREET')

在处理上述异常期间,发生了另一个异常:

回溯(最近一次调用上次):文件 “/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/requests/adapters.py”, 第449行,发送 超时=超时文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/urllib3/connectionpool.py”, 第638行,在urlopen中 _stacktrace=sys.exc_info()[2])文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/urllib3/util/retry.py”, 第368行,增量 引发六个.reaise(type(error)、error、_stacktrace)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/urllib3/packages/six.py”, 第685行,在reraise中 使用_traceback(tb)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/urllib3/connectionpool.py”提升值“, 第600行,在urlopen中 chunked=chunked)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/urllib3/connectionpool.py”, 第384行,在请求中 六、从(e,无)文件“”中的第2行“从文件中升起” “/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/urllib3/connectionpool.py”, 第380行,输入请求 httplib_response=conn.getresponse()文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py”, 第1321行,在getresponse中 response.begin()文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py”, 第296行,开始 版本,状态,原因=self.\u read\u status()文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py”, 第257行,处于读取状态 line=str(self.fp.readline(_MAXLINE+1),“iso-8859-1”)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/socket.py”,第行 589,在readinto中 将self._sock.recv_返回(b)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/urllib3/contrib/pyopenssl.py”, 第312行,收进 将self.recv_返回(*args,**kwargs)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/urllib3/contrib/pyopenssl.py”, 第302行,记录到 raise SocketError(str(e))urllib3.exceptions.ProtocolError:(“连接中止”,OSError((104,“EconReset”))

在处理上述异常期间,发生了另一个异常:

回溯(最近一次调用上次):文件 “BTC\u USDT\u BINANCE\u minutes.py”,第54行,in klines=client.get_history_klines(股票代码,client.KLINE间隔,从开始到结束)文件 “/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/binance/client.py”, 第765行,在get_历史记录中 第一个\u有效\u ts=self.\u获取\u最早的\u有效\u时间戳(符号,间隔)文件 “/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/binance/client.py”, 第723行,输入“获取最早有效时间戳” endTime=None文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/binance/client.py”, 第705行,在get_Kline中 返回self.\u get('klines',data=params)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/binance/client.py”, 第207行,输入 返回self.\u请求\u api('get',path,signed,version,**kwargs)文件 “/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/binance/client.py”, 第181行,在请求api中 返回self.\u请求(方法、uri、签名、**kwargs)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/binance/client.py”, 第175行,输入请求 response=getattr(self.session,method)(uri,**kwargs)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/requests/sessions.py”, 第546行,输入get 返回self.request('GET',url,**kwargs)文件“/home/ec2 user/.pyenv/versions/3.7.3/lib/python3.7/site packages/requests/sessions.py”, 第533行,请求中 resp=self.send(准备,**发送文件“/home/ec2-
...
client = Client(api_key, api_secret)
while True:
    ...
    try :
        klines = client.get_historical_klines(ticker_symbol, Client.KLINE_INTERVAL_1MINUTE, _from_str, _until_str)

    except BinanceAPIException as e:
        print(e)
        print('Something went wrong. Error occured at %s. Wait for 1 hour.' % (datetime.datetime.now().astimezone(timezone('UTC'))))
        sleep(3600)
        client = Client(api_key, api_secret)
        continue
...