如何用JavaScript从Alpha Vantage API返回的JSON数据中提取日期数组
解决方法
Alpha Vantage 所有时间序列类接口的返回结构中,对应时间粒度的字段(比如Time Series (Daily)、Time Series (5min))下的一级键就是你需要的时间戳/日期字符串,直接提取这些键即可得到目标数组。
Python 实现示例
import requests # 替换为你自己的API密钥和股票代码 API_KEY = "YOUR_API_KEY" SYMBOL = "AAPL" # 此处以每日粒度接口为例,可替换为你实际调用的接口function参数 url = f"https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol={SYMBOL}&apikey={API_KEY}" resp = requests.get(url) data = resp.json() # 提取对应时间粒度的字段 time_series = data.get("Time Series (Daily)", {}) # 直接转数组得到日期列表 date_arr = list(time_series.keys()) # 如果你调用的是日内粒度(5分钟/1分钟)接口,要提取日期部分(即示例中同一个日期重复出现的效果),用以下代码: # time_series = data.get("Time Series (5min)", {}) # date_arr = [ts.split(" ")[0] for ts in time_series.keys()] # 如果需要按时间正序排列,反转数组即可 # date_arr = date_arr[::-1] print(date_arr)
JavaScript 实现示例
const API_KEY = "YOUR_API_KEY" const SYMBOL = "AAPL" fetch(`https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=${SYMBOL}&apikey=${API_KEY}`) .then(res => res.json()) .then(data => { const timeSeries = data["Time Series (Daily)"] || {} let dateArr = Object.keys(timeSeries) // 日内粒度提取日期部分的写法 // dateArr = Object.keys(timeSeries).map(ts => ts.split(" ")[0]) // 正序排列写法 // dateArr = dateArr.reverse() console.log(dateArr) })
如果你的接口返回结构和通用结构有差异,只要找到时间序列对应的对象层,提取该层的所有键即可得到对应日期。
内容的提问来源于stack exchange,提问作者joseph
相关产品推荐
相关产品推荐

