python
  • yahoo-api
  • stockquotes
  • 2014-12-06 90 views 3 likes 
    3

    我已經使用yql控制檯並收到了相應的響應。然而,發送一個基於python的查詢,我仍然有一個錯誤。首先控制檯示例:Python,yahoo yql報價錯誤

    select * from yahoo.finance.quotes where symbol in ("yahoo", "aapl") 
    

    我收到一個包含預期字段的結果塊。蟒蛇例如:

    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'

    我缺少什麼? TIA, 克萊頓

    回答

    3

    你缺少什麼是查詢的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'}]}}} 
    
    +0

    爲什麼它從YQL控制檯工作,沒有包膜的關鍵字?另外,在我的原始代碼中,我有env關鍵字和格式關鍵字,每個都用'&'分隔,稍微玩一下,原始問題的'修復'就是'&'周圍的空格。似乎沒有證件。我已經爲此工作了好幾天。非常感謝!仍然想知道爲什麼在我的代碼中需要env,但不是在控制檯上。 – Clayton 2014-12-06 04:20:06

    +0

    我不知道爲什麼,要麼。我去了控制檯,並從那裏複製他們的URL,逆向工程師。 – 2014-12-06 04:21:33

    相關問題