2017-11-29 17 views
1

좋아, 그래서 각 회사에 대한 추가 섹터 칼럼과 기본 주식 데이터 CVS 파일입니다. 위키 백과에서 섹터와 시세표를 얻는 것이 좋습니다.Quandl 요청을 포맷 할 수 있습니까?

하지만 Google/Yahoo 데이터는 더 이상 작동하지 않으므로 Quandl을 사용하려고했습니다. 최근에는 기술적 인 지표를 기반으로 작성 했으므로 훌륭하다고 생각했습니다. 오류.

그런 요청을 형식화 할 수 있다면 여전히 의문스러워서 문제가 있다고 생각할 수는 있지만 작동하게 만들 수는 없다고 생각합니다.

조언을 보내 주셔서 감사합니다.

from bs4 import BeautifulSoup 
import requests 
import pandas as pd 
import lxml 
import quandl as qdl 

def get_ticker_and_sector(url='https://en.wikipedia.org/wiki/List_of_S%26P_500_companies'): 
r = requests.get(url) 
data = r.text 
soup = BeautifulSoup(data, 'lxml') 
table = soup.find('table') 

sp500 = {} 

for tr in table.find_all('tr')[1:]: 
    tds = tr.find_all('td') 
    ticker = tds[0].text 
    sector = tds[3].text 
    sp500[ticker] = sector 
    return sp500 


if __name__ == '__main__': 
    sp500 = get_ticker_and_sector() 
    for i, (ticker, sector) in enumerate(sp500.items()): 
     stock_df = qdl.get('WIKI/%s', start_date="2010-12-11", end_date="2011-12-31")%(ticker) 
     stock_df['Name'] = ticker 
     stock_df['Sector'] = sector 
     if i == 0: 
      all_df = stock_df 
     else: 
      all_df = all_df.append(stock_df) 
all_df.to_csv('all_sp500_data_2.csv') 

오류.

Traceback (most recent call last): 
    File "/home/tomek/tomek-workspace/pythons/udemy/lib/python3.5/site-packages/quandl/connection.py", line 55, in parse 
    return response.json() 
    File "/home/tomek/tomek-workspace/pythons/udemy/lib/python3.5/site-packages/requests/models.py", line 886, in json 
    return complexjson.loads(self.text, **kwargs) 
    File "/usr/lib/python3.5/json/__init__.py", line 319, in loads 
    return _default_decoder.decode(s) 
    File "/usr/lib/python3.5/json/decoder.py", line 339, in decode 
    obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
    File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode 
    raise JSONDecodeError("Expecting value", s, err.value) from None 
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "/home/tomek/PycharmProjects/untitled4/get_file.py", line 30, in <module> 
    stock_df = qdl.get('WIKI/%s', start_date="2010-12-11", end_date="2011-12-31")%('ticker') 
    File "/home/tomek/tomek-workspace/pythons/udemy/lib/python3.5/site-packages/quandl/get.py", line 48, in get 
    data = Dataset(dataset_args['code']).data(params=kwargs, handle_column_not_found=True) 
    File "/home/tomek/tomek-workspace/pythons/udemy/lib/python3.5/site-packages/quandl/model/dataset.py", line 47, in data 
    return Data.all(**updated_options) 
    File "/home/tomek/tomek-workspace/pythons/udemy/lib/python3.5/site-packages/quandl/operations/list.py", line 14, in all 
    r = Connection.request('get', path, **options) 
    File "/home/tomek/tomek-workspace/pythons/udemy/lib/python3.5/site-packages/quandl/connection.py", line 36, in request 
    return cls.execute_request(http_verb, abs_url, **options) 
    File "/home/tomek/tomek-workspace/pythons/udemy/lib/python3.5/site-packages/quandl/connection.py", line 44, in execute_request 
    cls.handle_api_error(response) 
    File "/home/tomek/tomek-workspace/pythons/udemy/lib/python3.5/site-packages/quandl/connection.py", line 61, in handle_api_error 
    error_body = cls.parse(resp) 
    File "/home/tomek/tomek-workspace/pythons/udemy/lib/python3.5/site-packages/quandl/connection.py", line 57, in parse 
    raise QuandlError(http_status=response.status_code, http_body=response.text) 
quandl.errors.quandl_error.QuandlError: (Status 400) Something went wrong. Please try again. If you continue to have problems, please contact us at [email protected] 

답변

0

추적은 API에 대한 요청에 문제가 있다는 것을 나타내는 400 개의 상태 코드를 제공합니다.

우리는 당신의 API 키를 인식하지 수 :

은보다 구체적으로, Quandl의 문서는 400 상태 코드에 대한 다음 말한다. API 키를 확인하고 다시 시도하십시오. 계정 설정에서 API 키를 찾을 수 있습니다.

좋은 시작 지점으로 Quandl 모듈을 설치 한 후 API 키를 입력 했습니까? Steps are here for more information on how to do it.

나머지 코드를 훑어보고 다른 오류가 있는지 완전히 테스트하지는 않았습니다.