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

使用Python的cdsapi模块获取数据时遇TypeError问题求助

TypeError: 'tuple' object is not callable when using cdsapi to retrieve ERA5 data

这个错误通常是cdsapi的认证配置出了问题,具体来说是认证信息被解析成了不可调用的元组,导致requests库在处理认证时失败。

问题根源

你看到的TypeError: 'tuple' object is not callable出现在requests的认证准备阶段,这说明cdsapi客户端获取到的认证信息格式不正确——大概率是你的~/.cdsapirc配置文件存在语法错误。

解决方案

1. 检查并修复配置文件

打开你的~/.cdsapirc文件(Linux/macOS在用户根目录,Windows在C:\Users\<你的用户名>\.cdsapirc),确保它的格式严格符合以下要求:

url: https://cds.climate.copernicus.eu/api/v2
key: 你的UID:你的API密钥

注意事项:

  • 不要给key的值加括号、引号(除非你的密钥本身包含特殊字符,但通常不需要)
  • 确保url和key的冒号后面有一个空格
  • 不要在文件里保留示例中的多余符号(比如把示例里的括号留下来)

2. 代码中显式指定认证信息(可选)

如果修改配置文件后还是有问题,可以尝试在初始化cdsapi.Client时直接传入认证参数,绕过配置文件:

import cdsapi

# 替换成你自己的UID和API密钥
cds = cdsapi.Client(
    url='https://cds.climate.copernicus.eu/api/v2',
    key='12345:abcdefghijklmnopqrstuvwxyz1234567890'
)

cds.retrieve('reanalysis-era5-pressure-levels', {
    "variable": "temperature",
    "pressure_level": "1000",
    "product_type": "reanalysis",
    "date": "2017-12-01/2017-12-31",
    "time": "12:00",
    "format": "grib"
}, 'download.grib')

验证你的代码

你的数据请求代码本身是完全正确的,只要认证配置修复,就能正常发起请求获取ERA5数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 17:17:27