希望你们都能安全。
我正在尝试创建一个股票交易系统,它从电子表格中提取代码,在雅虎金融上搜索这些代码,然后提取,然后保存这些股票的历史数据,这样以后就可以使用了。
我让它在一个滴答器上运行得很好,但是当涉及到在for循环中执行时,我在概念上弄错了。
到目前为止,这就是我所知道的:
我有一个excel电子表格,其中有许多公司代码,格式如下:
Ticker Name
WMT Walmart
AMZN Amazon
AAPL Apple
CVS CVS Health在将这些内容读入变量后,我创建了以下系列:
p_ticker = p_data['Ticker']我有一个简单的'webscraper‘,可以查看雅虎的财务状况,并为一个代码提取数据:
ticker = 'AAPL'
scrape_string = f"https://query1.finance.yahoo.com/v7/finance/download/{ticker}?period1=1480636740&period2=1606867140&interval=1d&events=history&includeAdjustedClose=true"
output = pd.read_csv(scrape_string)
output我现在正试图使它对电子表格的内容起作用,而不是一个滴答器;这是我尝试过的:
for ticker in p_ticker:
scrape_string = f"https://query1.finance.yahoo.com/v7/finance/download/{ticker}?period1=1480636740&period2=1606867140&interval=1d&events=history&includeAdjustedClose=true"
ticker_data = {ticker:scrape_string}
output = pd.read_csv(scrape_string)
output
{'CVS': 'query1.finance.yahoo.com/v7/finance/download/…'}知道如何使它在每一个循环中迭代并使字典正常工作吗?
发布于 2021-05-22 13:44:58
for tick in p_ticker的工作方式如下:p_ticker是一个列表,因此可以进行迭代。for tick就是这样做的--它接受第一件事,并将值tick设置为它。然后,在下一行中,您将有一个全新的变量ticker,并将其设置为p_ticker。但p_ticker是整个名单。
您只需要其中的一个值,您已经将其分配给了tick。因此,去掉ticker=p_ticker行,在scrape_string中使用tick而不是ticker。
然后,当它到达循环的底部时,返回到顶部,并将tick设置为p_ticker中的下一个值,并再次执行。
此外,您的scrape_string行应该缩进for-循环中的其他所有内容。
https://stackoverflow.com/questions/67650148
复制相似问题