如何从Alphavantage返回的嵌套字典中提取所需的RSI指标数值
提取Alpha Vantage RSI字段的实现方法
核心逻辑
你拿到的返回是标准嵌套字典结构,直接按层级访问对应key即可提取RSI值:
- 第一层
Technical Analysis: RSI对应所有时间点的RSI数据集 - 第二层key为交易日期,对应value里的
RSI字段就是你需要的数值
单只股票提取示例(Python)
# 假设接口返回的JSON数据已存入变量rsi_response # 1. 提取最新交易日的RSI值(默认返回按时间倒序排列,第一个就是最新) latest_rsi = float(list(rsi_response["Technical Analysis: RSI"].values())[0]["RSI"]) # 2. 提取所有交易日对应RSI,存为日期:RSI的字典格式 date_rsi_map = { date: float(item["RSI"]) for date, item in rsi_response["Technical Analysis: RSI"].items() }
批量股票提取示例
把单只提取逻辑封装成循环遍历你的股票列表即可:
import time stock_list = ["ABMD", "AAPL", "MSFT"] # 替换为你自己的股票列表 stock_rsi = {} for symbol in stock_list: # 此处替换为你自己调用Alpha Vantage RSI接口的代码,传入当前股票代码获取返回 resp = your_alphavantage_rsi_call(symbol) try: # 提取最新RSI latest_rsi = float(list(resp["Technical Analysis: RSI"].values())[0]["RSI"]) stock_rsi[symbol] = latest_rsi except KeyError: # 处理接口限流、无对应股票数据等异常情况 stock_rsi[symbol] = None # 免费版接口限每分钟5次,加12秒间隔避免触发限流 time.sleep(12)
如果需要提取指定时间段的RSI,只需要在遍历日期的时候加日期范围判断过滤即可
内容的提问来源于stack exchange,提问作者Aldomar Ramirez
相关产品推荐
相关产品推荐

