【问题标题】:Yahoo finance - get data as json雅虎财经 - 以 json 格式获取数据
【发布时间】:2014-02-13 13:53:12
【问题描述】:

我想知道我应该在 YQL 中使用哪个表来获得来自 csv 的结果(符号 AAPL)。

Date,Open,High,Low,Close,Volume,Adj Close
2014-02-12,536.95,539.56,533.24,535.92,11003600,535.92
2014-02-11,530.61,537.75,529.50,535.96,10080600,535.96
2014-02-10,518.66,531.99,518.00,528.99,12341400,528.99

因为当我使用这个链接时:

http://query.yahooapis.com/v1/public/yql?q=select%20%2a%20from%20yahoo.finance.quotes%20where%20symbol%20in%20%28%22AAPL%22%29%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json

我收到了

{"query":{"count":1,"created":"2014-02-13T13:49:01Z","lang":"pl-PL","results":{"quote":{"symbol":"AAPL","Ask":"532.70","AverageDailyVolume":"12521600","Bid":"532.27","AskRealtime":"532.70","BidRealtime":"532.27","BookValue":"145.313","Change_PercentChange":"-0.04 - -0.01%","Change":"-0.04","Commission":null,"ChangeRealtime":"-0.04","AfterHoursChangeRealtime":"N/A - N/A","DividendShare":"12.20","LastTradeDate":"2/12/2014","TradeDate":null,"EarningsShare":"40.233","ErrorIndicationreturnedforsymbolchangedinvalid":null,"EPSEstimateCurrentYear":"42.81","EPSEstimateNextYear":"46.24","EPSEstimateNextQuarter":"8.66","DaysLow":"533.24","DaysHigh":"539.56","YearLow":"385.10","YearHigh":"575.14","HoldingsGainPercent":"- - -","AnnualizedGain":null,"HoldingsGain":null,"HoldingsGainPercentRealtime":"N/A - N/A","HoldingsGainRealtime":null,"MoreInfo":"cnsprmiIed","OrderBookRealtime":null,"MarketCapitalization":"478.0B","MarketCapRealtime":null,"EBITDA":"56.565B","ChangeFromYearLow":"+150.82","PercentChangeFromYearLow":"+39.16%","LastTradeRealtimeWithTime":"N/A - <b>535.92</b>","ChangePercentRealtime":"N/A - -0.01%","ChangeFromYearHigh":"-39.22","PercebtChangeFromYearHigh":"-6.82%","LastTradeWithTime":"Feb 12 - <b>535.92</b>","LastTradePriceOnly":"535.92","HighLimit":null,"LowLimit":null,"DaysRange":"533.24 - 539.56","DaysRangeRealtime":"N/A - N/A","FiftydayMovingAverage":"535.814","TwoHundreddayMovingAverage":"513.917","ChangeFromTwoHundreddayMovingAverage":"+22.003","PercentChangeFromTwoHundreddayMovingAverage":"+4.28%","ChangeFromFiftydayMovingAverage":"+0.106","PercentChangeFromFiftydayMovingAverage":"+0.02%","Name":"Apple Inc.","Notes":null,"Open":"536.92","PreviousClose":"535.96","PricePaid":null,"ChangeinPercent":"-0.01%","PriceSales":"2.75","PriceBook":"3.69","ExDividendDate":"Feb  6","PERatio":"13.32","DividendPayDate":"Feb 13","PERatioRealtime":null,"PEGRatio":"0.63","PriceEPSEstimateCurrentYear":"12.52","PriceEPSEstimateNextYear":"11.59","Symbol":"AAPL","SharesOwned":null,"ShortRatio":"1.30","LastTradeTime":"4:00pm","TickerTrend":"&nbsp;+++===&nbsp;","OneyrTargetPrice":"585.09","Volume":"11077535","HoldingsValue":null,"HoldingsValueRealtime":null,"YearRange":"385.10 - 575.14","DaysValueChange":"- - -0.01%","DaysValueChangeRealtime":"N/A - N/A","StockExchange":"NasdaqNM","DividendYield":"2.28","PercentChange":"-0.01%"}}}}

这不一样。

http://query.yahooapis.com/v1/public/yql?q=", encodeURIComponent('select * from yahoo.finance.historicaldata where symbol in ("AAPL")') + "&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json

似乎也不行。

【问题讨论】:

标签: yql yahoo-finance


【解决方案1】:

第一个链接只提供最新的股票报价。如果我理解您的问题,您似乎想知道从哪里获取历史数据。这似乎是您需要的链接:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.historicaldata%20where%20symbol%20%3D%20%22AAPL%22%20and%20startDate%20%3D%20%222012-09-11%22%20and%20endDate%20%3D%20%222014-02-11%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=

我刚刚尝试过,它为我撤回了一个 JSON 响应,其中包含从 09-11-2012 到 02-11-2014 的历史报价。

希望这会有所帮助。

【讨论】:

  • 看起来不错,但可以不定义开始/结束日期并返回所有记录吗?在 csv 我有 1991 / 2014 之间,但是当我在查询中设置这个日期时,我收到了太多的指令。见查询query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.historicaldata%20where%20symbol%20%3D%20%22AAPL%22%20and%20startDate%20%3D%20%221991-01-01%22%20and%20endDate %20%3D%20%222014-02-11%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=
  • 老实说,我从未尝试过像这样获取所有历史记录。我刚刚查看了您的查询,它给了我一个语法错误: {"error":{"lang":"en-US","diagnostics":null,"description":"Query syntax error(s) [line 1 :32 在字符 '​']"}} 没有可行的替代方案所以在我看来你至少需要一个开始日期,可能两者都有。
  • 您可以将他们拥有的所有当前历史记录下载到 csv 文件中。
猜你喜欢
  • 2013-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-26
  • 2020-04-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-12
相关资源
最近更新 更多