使用get_all_tickers获取股票代码时出现pandas ParserError如何解决
报错根因
该报错和内存、你写的文件路径语法完全无关,核心问题是你使用的get_all_tickers第三方库已经停止维护,其依赖的纳斯达克数据源的CSV格式发生了变更,库内部调用pandas解析CSV时无法适配新格式,才触发了分词错误。
修复方案
- 方案1(推荐):替换
get_all_tickers库,改用其他仍在活跃维护的股票代码获取方式:比如直接从纳斯达克官网公开的CSV接口下载股票列表自行解析,或使用pandas-datareader等库的对应接口获取符合筛选条件的股票代码。 - 方案2(临时可用):手动修改本地
get_all_tickers库的源码适配新格式:找到你本地的库文件路径C:\Users\Anthony\AppData\Local\Programs\Python\Python39\lib\site-packages\get_all_tickers\get_tickers.py,定位到第134行的df = pd.read_csv(data, sep=","),修改为df = pd.read_csv(data, sep=",", skiprows=4)即可,报错提示第5行开始字段数异常,跳过前4行无用的新增表头内容就能临时解决解析问题。
代码其他待修复的问题
修复完库的问题后,你的代码还存在几处问题需要调整才能正常运行:
- 缺少
time库导入,在首行导入代码中添加import time - 未初始化
Amount_of_API_Calls变量,在i=0代码前新增一行Amount_of_API_Calls = 0 - 现有代码所有股票的历史数据都会覆盖同一个
historicalData.csv文件,如果你需要每个股票单独存数据,可将保存路径修改为rf"C:\Users\Anthony\Desktop\Classes\testPrograms\pokerStorage\{stock}_historicalData.csv"
内容的提问来源于stack exchange,提问作者Anthony
相关产品推荐
相关产品推荐

