2012-10-07 45 views
5

我正在尝试使用YQL从雅虎获取股票期权链。我在YQL控制台尝试这个命令:如何使用YQL获得股票期权链?

select * from yahoo.finance.options 

不过,我得到这个错误XML:

<?xml version="1.0" encoding="UTF-8"?> 
<error xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:lang="en-US"> 
    <diagnostics> 
     <publiclyCallable>true</publiclyCallable> 
    </diagnostics> 
    <description>No definition found for Table yahoo.finance.options</description> 
</error> 

它看起来像这个表不存在了。有谁知道什么是正确的表?

+0

当我在YQL控制台中尝试你的YQL语句时,我得到'在where子句中找不到必需的键;期待所需的键:(符号)'但是当我添加where子句'symbol ='GOOG'和expiration ='2010-06''时,根本没有问题。 我们在谈论这个,对吧? (http://developer.yahoo.com/yql/console/) –

+0

是的,这就是我说的控制台。我不得不给我们一个社区表,这是它不工作的原因之一。我认为yahoo.finance.options是雅虎管理的一张表,但它实际上是来自datatables.org的社区表。谢谢! –

回答

1

yahoo.finance.options是一个社区表。阅读关于社区表格检查here。从我刚刚发布的链接:

为了在社区表中使用YQL,必须传入数据表env文件。您可以在YQL控制台上执行此操作,作为YQL语句的一部分,或通过传入查询参数。

的YQL控制台来测试这个可以发现here

+0

我不知道我可以按“显示社区表”来获得此表。这就是为什么它不适合我。谢谢! –

3

你必须提供至少一个where clause使这个查询工作。就像这样:

select * from yahoo.finance.options where symbol='MMM' 

,或者

select * from yahoo.finance.options where symbol='A' 

,或者

select * from yahoo.finance.options where symbol='YHOO' 

以上所有的查询工作的罚款。如果你想要更具体的数据,那么你必须提供更多的条件来从你的整个数据中过滤出你想要的数据。

+0

这样做还行吗? – Merlin

+0

是的,它的工作正常。我刚刚检查过。转到此页:https://developer.yahoo.com/yql/console/?q=select%20%2a%20from%20yahoo.finance.options&env=store://datatables.org/alltableswithkeys#h=select% 20%2a%20from%20yahoo.finance.options%20where%20symbol =%27GOOG%27 and type:select * from yahoo.finance.options where symbol ='YHOO' 然后点击test buttong,你会看到结果。我的答案中的所有查询都正常工作。 –

+0

我也检查过,似乎工作...雅虎限制使用的两个问题?它只给了我第一个月,我怎么能得到接下来的三个月,要么说2014-05,2014-06,2014-07或'未来三个月'。作为url或uri,字符串是什么... – Merlin

0

从2014 YQL的中间有问题,所以从yahoo.finance选项链刮可通过下面的代码以获得:今天我只是想出了PythonMatlab

-1

事情是,你可以只是用它来从雅虎获得选项数据

https://query2.finance.yahoo.com/v7/finance/options/SPXS?straddle=true 
+0

我不知道为什么有人投我的答案,但我在上面的答案中提供的端点返回给你一个JSON,如果你不能处理JOSN,那么我认为StackOverflow是你的错误网站 –

+1

可能下降投票是因为这个问题特别要求YQL – BigBen

相关问题