You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用cif库访问OECD接口出现SSLCertVerificationError如何解决

错误根因

该报错为请求stats.oecd.org站点时SSL证书验证失败导致,通常触发原因有三个:

  • 站点近期更新了SSL证书,本地根证书信任列表未同步新的证书签发机构信息
  • Python依赖的证书管理包certifi版本过旧,内置的根证书列表未覆盖站点新证书的签发机构
  • 部分MacOS环境下的Python版本未默认安装系统根证书
修复方案

按优先级从高到低执行即可:

方案1:更新证书依赖(最安全,无安全风险)

  • 首先升级certifi包(requests库默认使用的证书管理依赖):
    pip install --upgrade certifi
  • 如果你使用的是MacOS系统的Python环境,额外执行对应Python版本的证书安装脚本:
    /Applications/Python\ 3.x/Install\ Certificates.command
    将命令中的3.x替换为你本地使用的Python版本号,例如3.10。

方案2:临时关闭SSL校验(仅应急使用,不推荐长期开启)

如果方案1执行后仍报错,可以临时关闭SSL证书校验,修改代码如下:
首先在代码开头添加禁用SSL警告的配置:

import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

再修改createDataFrameFromOECD调用参数,添加verify=False:

data, subjects, measures = cif.createDataFrameFromOECD(
    countries=countries,
    dsname=dsname,
    measure=measure,
    frequency=frequency,
    startDate=startDate,
    endDate=endDate,
    verify=False
)

方案3:手动指定证书路径

如果不想关闭SSL校验,可手动导出stats.oecd.org站点的根证书存储到本地,调用时指定证书路径即可:

data, subjects, measures = cif.createDataFrameFromOECD(
    countries=countries,
    dsname=dsname,
    measure=measure,
    frequency=frequency,
    startDate=startDate,
    endDate=endDate,
    verify='/本地保存的根证书路径.pem'
)

内容的提问来源于stack exchange,提问作者Mark M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 17:54:07