首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在For循环中重试单次迭代(Python)

在For循环中重试单次迭代(Python)
EN

Stack Overflow用户
提问于 2018-06-12 08:03:57
回答 1查看 622关注 0票数 2

这里是Python新手(抱歉,如果这是一个愚蠢的问题)!我目前正在使用for循环来下载和操作数据。不幸的是,我偶尔会遇到导致部分循环失败的简短网络问题。

最初,我是这样做的:

# Import Modules
import fix_yahoo_finance as yf
import pandas as pd
from stockstats import StockDataFrame as sdf

# Stock Tickers to Gather Data For - in my full code I have thousands of tickers
Ticker = ['MSFT','SPY','GOOG']

# Data Start and End Data
Data_Start_Date = '2017-03-01'
Data_End_Date = '2017-06-01'

# Create Data List to Append
DataList = pd.DataFrame([])

# Initialize Loop
for i in Ticker:
    # Download Data
    data = yf.download(i, Data_Start_Date, Data_End_Date)
    # Create StockDataFrame
    stock_df = sdf.retype(data)
    # Calculate RSI
    data['rsi'] = stock_df['rsi_14']
    DataList.append(pd.DataFrame(data))

DataList.to_csv('DataList.csv',header=True,index=True)

有了这个基本的布局,每当我遇到网络错误时,它就会导致整个程序停止并发出错误。

我做了一些研究,并尝试将'for loop‘修改为:

for i in Ticker:
  try:
    # Download Data
    data = yf.download(i, Data_Start_Date, Data_End_Date)
    # Create StockDataFrame
    stock_df = sdf.retype(data)
    # Calculate RSI
    data['rsi'] = stock_df['rsi_14']
    DataList.append(pd.DataFrame(data))
  except:
    continue

这样,代码总是运行没有问题,但每当我遇到网络错误时,它就跳过它所在的所有计时器(无法下载他们的数据)。

我想要这个下载每个报价器的数据一次。如果失败,我希望它再试一次,直到成功一次,然后转到下一个滚动条。我尝试使用while True及其变体,但它导致循环多次下载相同的滚动条!

任何帮助或建议都是非常感谢的!谢谢!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50807582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档