Python,yahoo yql引用错误

Python,yahoo yql引用错误,python,yahoo-api,stockquotes,Python,Yahoo Api,Stockquotes,我已经使用了yql控制台,并收到了适当的响应。但是,在发送基于python的查询时,我仍然有一个错误。首先是控制台示例: select * from yahoo.finance.quotes where symbol in ("yahoo", "aapl") 我收到一个包含预期字段的结果块。python示例: import requests base_url = 'https://query.yahooapis.com/v1/public/yql?' query = 'q=select * f

我已经使用了yql控制台,并收到了适当的响应。但是,在发送基于python的查询时,我仍然有一个错误。首先是控制台示例:

select * from yahoo.finance.quotes where symbol in ("yahoo", "aapl")
我收到一个包含预期字段的结果块。python示例:

import requests
base_url = 'https://query.yahooapis.com/v1/public/yql?'
query = 'q=select * from yahoo.finance.quotes where symbol in ("YHOO", "AAPL")'
full_query=base_url + query
result = requests.get(full_query)
print(result.content)
答复如下:

b'\n未找到表yahoo.finance.quotes的定义'

我错过了什么? 蒂亚,
Clayton

您缺少的是查询的env部分:

import json
import urllib
from pprint import pprint

base_url = 'https://query.yahooapis.com/v1/public/yql?'
query = {
    'q': 'select * from yahoo.finance.quote where symbol in ("YHOO","AAPL")',
    'format': 'json',
    'env': 'store://datatables.org/alltableswithkeys'
}

url = base_url + urllib.urlencode(query)
response = urllib.urlopen(url)
data = response.read()
quote = json.loads(data)
pprint(quote)
输出:

{u'query': {u'count': 2,
            u'created': u'2014-12-06T03:53:23Z',
            u'lang': u'en-US',
            u'results': {u'quote': [{u'AverageDailyVolume': u'38009400',
                                     u'Change': u'+0.58',
                                     u'DaysHigh': u'51.25',
                                     u'DaysLow': u'50.51',
                                     u'DaysRange': u'50.51 - 51.25',
                                     u'LastTradePriceOnly': u'50.99',
                                     u'MarketCapitalization': u'48.305B',
                                     u'Name': u'Yahoo! Inc.',
                                     u'StockExchange': u'NasdaqNM',
                                     u'Symbol': u'YHOO',
                                     u'Volume': u'15418123',
                                     u'YearHigh': u'52.62',
                                     u'YearLow': u'32.15',
                                     u'symbol': u'YHOO'},
                                    {u'AverageDailyVolume': u'57049800',
                                     u'Change': u'-0.49',
                                     u'DaysHigh': u'116.08',
                                     u'DaysLow': u'114.64',
                                     u'DaysRange': u'114.64 - 116.08',
                                     u'LastTradePriceOnly': u'115.00',
                                     u'MarketCapitalization': u'674.5B',
                                     u'Name': u'Apple Inc.',
                                     u'StockExchange': u'NasdaqNM',
                                     u'Symbol': u'AAPL',
                                     u'Volume': u'38318896',
                                     u'YearHigh': u'119.75',
                                     u'YearLow': u'70.5071',
                                     u'symbol': u'AAPL'}]}}}

为什么它在yql控制台上工作而不使用env关键字?另外,在我的原始代码中,env关键字和format关键字分别用“&”分隔,稍微处理一下,原始问题的“修复”是“&”周围的空格。似乎没有记录在案。这件事我已经做了好几天了。非常感谢!仍然想知道为什么在我的代码中需要env,但在控制台上不需要。我也不知道为什么。我去控制台复制他们的URL,从那里进行反向工程。