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