如何将所有变量作为列表传递并使用几行代码而不是几行代码下载多个 csv?
How can I pass all the variables as a list and download multiple csv with few lines of code instead of several lines?
我有大约 50 只股票需要在 URL 中传递变量 ticker1、ticker2、ticker3.....ticker50。目前,我写了一个重复的 50 URLs,其中我分别从 ticker1、ticker2...ticker50 传递 Tickers。如何在不重复代码行的情况下实现它?
所以不用 url1...url2....url50,我有一个单曲 url,它在所有ticker1-50 的代码及其 retrieves/downloads 给定路径中的多个 csv。
下面是我实现结果的重复代码,但我想对其进行优化并使其整洁。
now = datetime.datetime.now()
# Stk 1
ticker1 = 'AAPL'
period1Stk1 = int(time.mktime(now.replace(now.year - 1).timetuple()))
period2Stk2 = int(time.mktime(datetime.datetime(2021, 12, 31, 23, 59).timetuple()))
interval1 = '1d'
url1 = f'https://query1.finance.yahoo.com/v7/finance/download/{ticker1}?period1={period1Stk1}&period2={period2Stk2}&interval={interval1}&events=history&includeAdjustedClose=true'
# Stk 2
ticker2 = 'ADBE'
period1Stk1 = int(time.mktime(now.replace(now.year - 1).timetuple()))
period2Stk2 = int(time.mktime(datetime.datetime(2021, 12, 31, 23, 59).timetuple()))
interval1 = '1d'
url2 = f'https://query1.finance.yahoo.com/v7/finance/download/{ticker2}?period1={period1Stk1}&period2={period2Stk2}&interval={interval1}&events=history&includeAdjustedClose=true'
retrieve(url1,'/Users/stocks/Cypto/AAPL.csv')
retrieve(url2,'/Users/stocks/ADBE.csv')
感谢并感谢您的帮助!
这是您的循环的简单版本,应该下载到同一文件夹中
now = datetime.datetime.now()
period1Stk1 = int(time.mktime(now.replace(now.year - 1).timetuple()))
period2Stk2 = int(time.mktime(datetime.datetime(2021, 12, 31, 23, 59).timetuple()))
interval1 = '1d'
tickers = ['AAPL', 'ADBE']
for ticker in tickers:
url = f'https://query1.finance.yahoo.com/v7/finance/download/{ticker}?period1={period1Stk1}&period2={period2Stk2}&interval={interval1}&events=history&includeAdjustedClose=true'
retrieve(url,'/Users/stocks/{0}.csv'.format(ticker))
我有大约 50 只股票需要在 URL 中传递变量 ticker1、ticker2、ticker3.....ticker50。目前,我写了一个重复的 50 URLs,其中我分别从 ticker1、ticker2...ticker50 传递 Tickers。如何在不重复代码行的情况下实现它?
所以不用 url1...url2....url50,我有一个单曲 url,它在所有ticker1-50 的代码及其 retrieves/downloads 给定路径中的多个 csv。
下面是我实现结果的重复代码,但我想对其进行优化并使其整洁。
now = datetime.datetime.now()
# Stk 1
ticker1 = 'AAPL'
period1Stk1 = int(time.mktime(now.replace(now.year - 1).timetuple()))
period2Stk2 = int(time.mktime(datetime.datetime(2021, 12, 31, 23, 59).timetuple()))
interval1 = '1d'
url1 = f'https://query1.finance.yahoo.com/v7/finance/download/{ticker1}?period1={period1Stk1}&period2={period2Stk2}&interval={interval1}&events=history&includeAdjustedClose=true'
# Stk 2
ticker2 = 'ADBE'
period1Stk1 = int(time.mktime(now.replace(now.year - 1).timetuple()))
period2Stk2 = int(time.mktime(datetime.datetime(2021, 12, 31, 23, 59).timetuple()))
interval1 = '1d'
url2 = f'https://query1.finance.yahoo.com/v7/finance/download/{ticker2}?period1={period1Stk1}&period2={period2Stk2}&interval={interval1}&events=history&includeAdjustedClose=true'
retrieve(url1,'/Users/stocks/Cypto/AAPL.csv')
retrieve(url2,'/Users/stocks/ADBE.csv')
感谢并感谢您的帮助!
这是您的循环的简单版本,应该下载到同一文件夹中
now = datetime.datetime.now()
period1Stk1 = int(time.mktime(now.replace(now.year - 1).timetuple()))
period2Stk2 = int(time.mktime(datetime.datetime(2021, 12, 31, 23, 59).timetuple()))
interval1 = '1d'
tickers = ['AAPL', 'ADBE']
for ticker in tickers:
url = f'https://query1.finance.yahoo.com/v7/finance/download/{ticker}?period1={period1Stk1}&period2={period2Stk2}&interval={interval1}&events=history&includeAdjustedClose=true'
retrieve(url,'/Users/stocks/{0}.csv'.format(ticker))