由於yahoo.finance.option_contracts
表是Community Open Data Table您將希望將其作爲查詢環境的一部分。最簡單的方法是加載所有社區表的環境文件;就像在YQL控制檯中單擊「顯示社區表」一樣。
通常情況下,您可以通過在查詢本身中在YQL查詢URL或子句中指定env=...
參數來完成此操作。
您正在使用的Python庫允許您將環境文件作爲參數傳遞給。
import yql
y = yql.Public()
query = 'SELECT * FROM yahoo.finance.option_contracts WHERE symbol="SPY"'
y.execute(query, env="store://datatables.org/alltableswithkeys")
這裏的延伸yql.Public
能夠定義實例上的默認環境的一個例子。
class MyYql(yql.Public):
def __init__(self, api_key=None, shared_secret=None, httplib2_inst=None, env=None):
super(MyYql, self).__init__(api_key, shared_secret, httplib2_inst)
self.env = env if env else None
def execute(self, query, params=None, **kwargs):
kwargs["env"] = kwargs.get("env", self.env)
return super(MyYql, self).execute(query, params, **kwargs);
它可以用於像:
y = MyYql(env="store://datatables.org/alltableswithkeys")
query = 'SELECT * FROM yahoo.finance.option_contracts WHERE symbol="SPY"'
r = y.execute(query)
您仍然可以覆蓋env
中y.execute()
獨立呼叫,如果你需要。
沒有..它說定義沒有找到,即使在你指定的鏈接 – karthikr