我正在下载从财经雅虎分享。有一个错误提示:
JSONDecodeError: Expecting value: line 1 column 1 (char 0)--我已经检查了所有类似的问题,但都是徒劳的,这就是为什么我再次问这个问题的原因。
我正在下载纳斯达克前100强股票的股票细节使用这种回购,这基本上是预测股票的股票基础上的财务分析。现在是下载共享并将其保存为Pandas DataFrame的阶段。守则是:
shares = []
tickers_done = []
for ticker in tqdm(tickers):
if ticker in tickers_done:
continue
d = requests.get(f"https://query1.finance.yahoo.com/ws/fundamentals-timeseries/v1/finance/timeseries/{ticker}?symbol={ticker}&padTimeSeries=true&type=annualPreferredSharesNumber,annualOrdinarySharesNumber&merge=false&period1=0&period2=2013490868")
if not d.ok:
time.sleep(300)
d = requests.get(f"https://query1.finance.yahoo.com/ws/fundamentals-timeseries/v1/finance/timeseries/{ticker}?symbol={ticker}&padTimeSeries=true&type=annualPreferredSharesNumber,annualOrdinarySharesNumber&merge=false&period1=0&period2=2013490868")
ctn = d.json()['timeseries']['result']
dct = dict()
for n in ctn:
type = n['meta']['type'][0]
dct[type] = dict()
if type in n:
for o in n[type]:
if o is not None:
dct[type][o['asOfDate']] = o['reportedValue']['raw']
df = pd.DataFrame.from_dict(dct)
df['symbol'] = ticker
shares.append(df)
tickers_done.append(ticker)
time.sleep(1)
# save dataframe
df = pd.concat(shares)
df['date'] = df.index
df.to_csv(f"data/{project}/shares.csv", index=False)错误屏幕截图是:

我检查了每一个代码请求( status_code )如下:
for x in tickers:print(d.status_code)结果均为4 0 3。你的好意将是非常感谢的。谢谢!
但是搜索铬中的链接https://query1.finance.yahoo.com/ws/fundamentals-timeseries/v1/finance/timeseries/AAPL?symbol=AAPL&padTimeSeries=true&type=annualPreferredSharesNumber,annualOrdinarySharesNumber&merge=false&period1=0&period2=2013490868,通过放置一个代码,比如,AAPL,它提供了一些数据,比如,

发布于 2022-11-26 21:20:02
误差
根据错误跟踪,下面一行将抛出一个错误:
ctn = d.json()'timeseries‘
该错误试图告诉您,d中的数据不是JSON格式的:
JSONDecodeError:期望值:第1列(char 0),所以基本上第一个字符(第1行,第1列)不是启动JSON的预期
{。
在上面的行之前添加一个print/断点,并亲自查看d中的数据(以及它是否包含有效的JSON)。
致因
正如你最后指出的那样:
结果均为403。你的好意将是非常感谢的。谢谢!
由于服务器正在拒绝requests.get调用,因此响应不包含有效的JSON。找出服务器拒绝调用的原因(403建议您使用无法访问所请求的资源);从返回任何数据的最基本调用开始,然后添加位,直到得到工作查询或错误为止。
https://stackoverflow.com/questions/74585557
复制相似问题