如何从yfinance返回的price字典中提取多个指定值并存入变量
方法1:先提取完整price字典再构造目标字典(推荐)
这种方式只调用一次yfinance接口,性能最优,避免重复请求触发接口限制:
# 先一次性获取完整的price字段数据 price_dict = yf.Ticker("FB").stats()["price"] # 提取指定三个字段存入response字典 response = { "shortName": price_dict["shortName"], "regularMarketPrice": price_dict["regularMarketPrice"], "symbol": price_dict["symbol"] }
也可以用更简洁的字典推导式写法:
price_dict = yf.Ticker("FB").stats()["price"] target_fields = ["shortName", "regularMarketPrice", "symbol"] response = {field: price_dict[field] for field in target_fields}
最终response的输出为:
{'shortName': 'Facebook, Inc.', 'regularMarketPrice': 340.765, 'symbol': 'FB'}
后续需要取值时直接通过键名获取即可,比如response["regularMarketPrice"]就能拿到股价。
方法2:存入元组/列表(适合按顺序使用的场景)
如果你不需要键名关联,只需要按固定顺序存三个值,也可以直接存成元组或者列表:
price_dict = yf.Ticker("FB").stats()["price"] # 元组格式 response = (price_dict["shortName"], price_dict["regularMarketPrice"], price_dict["symbol"]) # 或者列表格式 # response = [price_dict["shortName"], price_dict["regularMarketPrice"], price_dict["symbol"]]
取值时按索引取即可,比如response[1]对应regularMarketPrice的值。
注意:不推荐直接在一行里重复调用
yf.Ticker("FB").stats()["price"]获取每个字段,会重复发起多次请求,不仅效率低,还容易触发yfinance的接口限流。
内容的提问来源于stack exchange,提问作者Oris
相关产品推荐
相关产品推荐

