在包含API的for循环中动态创建字典

时间:2017-08-18 20:54:18

标签: python dictionary

擅长python和编程。如何使用for循环创建包含两个API的字典(一个从S& P 500公司的字典中提取股票代码,另一个是yahoo_finance以提取相应的市值数据),另外还可以更新以替换现有数据。

import sp500
from yahoo_finance import Share

tickers = {}

for d in sp500:
   for k, v in tickers.items():
      retrieveticker = d['symbol']
      yahoodata = Share(retrieveticker)
      dict = {retrieveticker,yahoodata.get_market_cap(retrieveticker)}
      tickers.update(dict)

print tickers

换句话说。主要目标是下载sp500公司名单,找到相应的市值,并创建以股票代码为关键字的字典,以及市值作为其价值。

先谢谢。

2 个答案:

答案 0 :(得分:0)

我相信您要做的是将您的商品打包到{}中,这样就会创建一个字典而不是一个字符集,如下所示:

yahoo = {'key': 'value'}
retrieveticker = {'key2': 'value2'}
a_dict = {**retrieveticker, **yahoo}
a_dict
{'key': 'value', 'key2': 'value2'}

另外,请勿将dict用于变量名称。

我没有yahoo_finance,但这就是您的代码中的样子:

for d in sp500:
   for k, v in tickers.items():
      retrieveticker = d['symbol']
      yahoodata = Share(retrieveticker)
      a_dict = {**retrieveticker, **yahoodata.get_market_cap(retrieveticker)}
      tickers.update(a_dict)

假设retrievetickeryahoodata.get_market_cap(retrieveticker)都是dicts。

答案 1 :(得分:0)

我相信你只想将这些值添加到字典中:

tickers[retrieveticker] = yahoodata.get_market_cap(retrieveticker)

而不是在for循环的每次迭代结束时使用的两行。