调用IEX Cloud批量接口触发JSONDecodeError错误如何解决
错误原因
你遇到的JSONDecodeError是URL参数拼接不符合规则导致的:
- URL查询参数的语法规则为:首个参数前用
?标识参数段的开始,后续所有参数之间必须用&分隔。 - 你的代码中
types=quote参数和token参数之间错误使用了?作为分隔符,导致接口无法正确识别你的请求参数,返回的响应内容为非JSON格式的错误提示,因此调用json()方法解析时抛出异常。
解决方法
将URL中types=quote?token=的?替换为&即可。
修正后的代码
import numpy as np import pandas as pd import requests import json sandbox_api = 'Tpk_002d9beb3a9c489d98368b78bd1ecf00' # 仅修改了参数分隔符 url = f'https://sandbox.iexapis.com/stable/stock/market/batch?symbols=AAPL,FB,TSLA&types=quote&token={sandbox_api}' data = requests.get(url).json()
通用排查技巧
后续遇到类似JSON解析报错时,可以先打印响应的原始内容确认返回数据格式,比如添加print(requests.get(url).text),就能直接看到接口返回的实际错误信息,更快定位问题。
内容的提问来源于stack exchange,提问作者swordlordswamplord
相关产品推荐
相关产品推荐

