Python访问Google BigQuery遇[SSL: CERTIFICATE_VERIFY_FAILED]错误求助
解决Python连接BigQuery时的SSL证书验证失败问题
针对你遇到的[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate错误,以下是几种可行的解决办法:
方法1:指定系统CA证书路径
本地Python环境可能缺少信任的根证书,尤其是企业网络环境下。可以手动指定系统的CA证书文件路径:
- 找到你的系统CA证书位置:
- Windows:
C:\Windows\System32\certificates\root\ca-bundle.crt(可根据实际路径调整) - macOS:
/etc/ssl/cert.pem - Linux:
/etc/ssl/certs/ca-certificates.crt
- Windows:
- 在代码中添加环境变量指定证书路径:
import os from google.cloud import bigquery os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '<filename>.json' # 替换为你的CA证书实际路径 os.environ['REQUESTS_CA_BUNDLE'] = '/path/to/your/ca-certificate.crt' client = bigquery.Client() sql_query = """ select * from `<project>.<folder>.<table>` LIMIT 50""" query_job = client.query(sql_query) for row in query_job.result(): print(row)
方法2:更新certifi证书库
Python的网络请求依赖certifi提供的根证书集合,旧版本可能缺失BigQuery所需的证书:
- 先更新certifi:
pip install --upgrade certifi
- 在代码中使用certifi提供的证书路径:
import os import certifi from google.cloud import bigquery os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '<filename>.json' # 使用certifi的默认证书路径 os.environ['REQUESTS_CA_BUNDLE'] = certifi.where() client = bigquery.Client() # 后续查询代码不变
方法3:临时禁用SSL验证(仅测试用)
注意:此方法存在安全风险,仅用于快速验证问题根源,禁止在生产环境使用
import os import ssl from google.cloud import bigquery # 临时跳过SSL证书验证 ssl._create_default_https_context = ssl._create_unverified_context os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '<filename>.json' client = bigquery.Client() # 后续查询代码不变
额外检查项
- 确认JSON凭证文件路径正确,本地用户有读取权限
- 更新BigQuery客户端库到最新版本:
pip install --upgrade google-cloud-bigquery
内容的提问来源于stack exchange,提问作者Mark Polito
相关产品推荐
相关产品推荐

