前面我们学过了简单学Python——错误和异常处理,文章中简单的介绍了一下原理及举例应用。今天我们再讲一下在for循环中处理错误和异常的例子。
事情是这样的,我要建立自己的股票数据库,为了以后用来回测策略。先下载各个股票的日K线数据,因为要下载的数据量大(每只股票的日K数据为从股票上市到最近一个交易日),所以下载不了几个股票,服务器就超时了。这么个下载法,好几千支股票得下载到何年何月呀。于是乎,只能上手段了,超时后继续连接下载。代码如下:
#实现了服务器拒绝了也能再次尝试下载的功能
import time
import pandas as pd
import numpy as np
#查看一下哪些股票日k线数据在文件中
store = pd.HDFStore('test.h5')
print(store.keys())
#所有股票代码转成列表后续用到
list = data['ts_code'].tolist()
for i in list:
#容易中断,所以用try...except
try:
if not (('/'+i) in store.keys()):
#下载某个股票完整的日线数据
df = pro.daily(ts_code=i)
#转存到hdf中,以股票代码为key
df.to_hdf('test.h5',key=i, append=True, mode='r+', format='t')
#服务器容易中断,所以设置休息时长为10s
time.sleep(10)
#系统提示的错误代码不是正确的,因此except后面什么都不填了。
except :
#继续执行循环。
continue
方法就是在for循环中用try/except处理错误,处理完成后,用continue语句接着循环。需要注意的是有时候系统提示的错误代码不是正确的,所以except后面什么都不填了,意思就是无论遇到什么错误,就是要继续执行。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/75010
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!