Python 2.7 Yahoo Finance找不到定义

时间:2016-10-09 13:45:28

标签: python yql yahoo-api yahoo-finance

希望你很好。我正在使用Python 2.7及其新功能。我试图使用雅虎金融API从股票中获取信息,这是我的代码:

from yahoo_finance import Share
yahoo = Share('YHOO')
print yahoo.get_historical('2014-04-25', '2014-04-29') 

这个代码在4次尝试中起作用,其他3次给我这个错误:

YQL Query error: Query failed with error: No Definition found for Table yahoo.finance.quote 

无论如何都要修复此错误,以便让代码100%正常工作? 谢谢。 最热烈的问候

1 个答案:

答案 0 :(得分:1)

这是服务器端错误query.yahooapis.com服务似乎由一组计算机处理,其中一些计算机似乎配置错​​误。这可能是一个暂时的问题。

使用curl直接访问API时,我看到同样的错误:

$ curl "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quote%20where%20symbol%20%3D%20%22YHOO%22&format=json&env=store%3a//datatables.org/alltableswithkeys"
{"error":{"lang":"en-US","description":"No definition found for Table yahoo.finance.quote"}}

除了在循环中重试之外,没有办法在Python端修复此问题:

data = None
for i in range(10):  # retry 10 times
    try:
        yahoo = Share('YHOO')
        data = yahoo.get_historical('2014-04-25', '2014-04-29')
        break
    except yahoo_finance.YQLQueryError:
        continue
if data is None:
    print 'Failed to retrieve data from the Yahoo service, try again later'