Python 我可以格式化Quandl请求吗?

Python 我可以格式化Quandl请求吗?,python,finance,quandl,Python,Finance,Quandl,好的,所以我需要的只是CVS文件,其中包含基本股票数据以及每个公司的附加部门列。从wikipedia获取部门和股票代码很好 但是Google/Yahoo数据不想再工作了,所以我尝试使用Quandl。我最近根据它制作了一些技术指标,所以我认为这会很好。但是有以下错误 我仍然怀疑我是否可以像这样格式化我的请求,所以我假设有问题,但我无法找到一种方法使其工作 谢谢你的建议,很抱歉错了 from bs4 import BeautifulSoup import requests import pandas

好的,所以我需要的只是CVS文件,其中包含基本股票数据以及每个公司的附加部门列。从wikipedia获取部门和股票代码很好

但是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 connect@quandl.com.
回溯(最近一次呼叫最后一次):
文件“/home/tomek/tomek workspace/pythons/udemy/lib/python3.5/site packages/quandl/connection.py”,第55行,在解析中
返回response.json()
json格式的文件“/home/tomek/tomek workspace/pythons/udemy/lib/python3.5/site packages/requests/models.py”,第886行
返回complexjson.load(self.text,**kwargs)
文件“/usr/lib/python3.5/json/_init__.py”,第319行,加载
返回\u默认\u解码器。解码
文件“/usr/lib/python3.5/json/decoder.py”,第339行,在decode中
obj,end=self.raw\u decode(s,idx=\u w(s,0.end())
原始解码中的文件“/usr/lib/python3.5/json/decoder.py”,第357行
从None引发JSONDecodeError(“预期值”,s,err.value)
json.decoder.JSONDecodeError:预期值:第1行第1列(字符0)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“/home/tomek/PycharmProjects/untitled4/get_File.py”,第30行,在
stock\u df=qdl.get('WIKI/%s',start\u date=“2010-12-11”,end\u date=“2011-12-31”)%('ticker')
文件“/home/tomek/tomek workspace/pythons/udemy/lib/python3.5/site packages/quandl/get.py”,get中第48行
数据=数据集(数据集参数['code'])。数据(参数=kwargs,句柄列未找到=True)
文件“/home/tomek/tomek workspace/pythons/udemy/lib/python3.5/site packages/quandl/model/dataset.py”,第47行,在数据中
返回数据。全部(**更新的_选项)
文件“/home/tomek/tomek workspace/pythons/udemy/lib/python3.5/site packages/quandl/operations/list.py”,共14行
r=Connection.request('get',path,**选项)
文件“/home/tomek/tomek workspace/pythons/udemy/lib/python3.5/site packages/quandl/connection.py”,第36行,在请求中
返回cls.execute\u请求(http\u动词、abs\u url、**选项)
文件“/home/tomek/tomek workspace/pythons/udemy/lib/python3.5/site packages/quandl/connection.py”,执行请求中的第44行
cls.handle\u api\u错误(响应)
文件“/home/tomek/tomek workspace/pythons/udemy/lib/python3.5/site packages/quandl/connection.py”,第61行,在handle\u api\u error中
错误\u body=cls.parse(resp)
文件“/home/tomek/tomek workspace/pythons/udemy/lib/python3.5/site packages/quandl/connection.py”,第57行,在解析中
引发量子错误(http_status=response.status_code,http_body=response.text)
quandl.errors.quandl_error.quandleror:(状态400)出现了一些错误。请再试一次。如果您仍然有问题,请联系我们connect@quandl.com.

回溯给您一个400状态代码,这意味着对API的请求有问题

更具体地说,Quandl的文档说明了以下关于400状态代码的内容:

我们无法识别您的API密钥。请检查您的API密钥并重试。您可以在帐户设置下找到API密钥

作为一个良好的起点,您是否在安装Quandl模块后输入了API密钥


请注意,我只浏览了您的代码的其余部分,并没有对其进行全面测试以查看是否还有其他错误

回溯给您一个400状态代码,这意味着对API的请求有问题

更具体地说,Quandl的文档说明了以下关于400状态代码的内容:

我们无法识别您的API密钥。请检查您的API密钥并重试。您可以在帐户设置下找到API密钥

作为一个良好的起点,您是否在安装Quandl模块后输入了API密钥

请注意,我只浏览了您的代码的其余部分,并没有对其进行全面测试以查看是否还有其他错误