我有一个股票指数列表(indizies)和几个股票代码列表(例如 gdaxi、mdaxi)。
我想在两个循环中从雅虎下载股票。
背景:在真实程序中,用户可以选择要下载的索引,索引。
问题是,index_name 的类型是一个字符串,对于第二个循环,index_name 必须是一个列表。但是第二个循环将 index_name 作为字符串。
结果:它尝试下载
g,d,a,x,i
的 csv
问题:如何将 index_name 从字符串转换为列表?
from pandas_datareader import data as pdr
indizies = ['GDAXI', 'MDAXI']
gdaxi = ["ADS.DE", "AIR.DE", "ALV.DE"]
mdaxi = ["AIXA.DE", "AT1.DE"]
for index_name in indizies:
for ticker in index_name:
df = pdr.get_data_yahoo(ticker)
df.to_csv(f'{ticker}.csv')
在
ticker in index_name
中,您正在迭代给定字符串中的字母。
我猜你要将代码更改为:
from pandas_datareader import data as pdr
gdaxi = ["ADS.DE", "AIR.DE", "ALV.DE"]
mdaxi = ["AIXA.DE", "AT1.DE"]
indizies = [gdaxi, mdaxi]
for index_name in indizies:
for ticker in index_name:
df = pdr.get_data_yahoo(ticker)
df.to_csv(f'{ticker}.csv')```
我们可以使用“locals”方法将变量作为字符串获取。它看起来像一本字典,您可以使用键获得结果。
indizies = ['GDAXI', 'MDAXI']
gdaxi = ["ADS.DE", "AIR.DE", "ALV.DE"]
mdaxi = ["AIXA.DE", "AT1.DE"]
Variables = locals()
for index_name in indizies:
for ticker in Variables[index_name.lower()]:
print(ticker)
试试这个兄弟。它区分大小写。所以请在使用它们之前检查变量名。希望能帮助到你!快乐编码:)