CDS BETA升级后Mac+Python环境调用CDS API遇格式错误求助
问题场景
环境:Mac OS + Python
安装cdsapi后,参照Copernicus官网CDS BETA API配置指南操作,运行以下示例代码时触发错误:
import cdsapi client = cdsapi.Client() dataset = "reanalysis-era5-pressure-levels" request = { 'product_type': 'reanalysis', 'format': 'grib', # 'netcdf' can also be used 'variable': 'temperature', 'pressure_level': '850', 'year': '2020', 'month': '01', 'day': '01', 'time': '00:00', 'area': [50, -130, 20, -60], # North, West, South, East (example area) } client.retrieve(dataset, request, 'downloaded_file.grib')
错误提示:
AssertionError: The cdsapi key provided is not the correct format,
please ensure it conforms to:<UID>:<APIKEY>
尝试添加UID、移除UID后,错误依旧。
排查与解决步骤
确认配置文件的位置和格式
Mac上cdsapi默认读取用户主目录下的隐藏文件.cdsapirc,打开该文件确保内容严格遵循以下格式:url: https://cds-beta.climate.copernicus.eu/api/v2 key: <UID>:<APIKEY>注意:
key:后面必须跟一个空格,然后直接粘贴完整的<UID>:<APIKEY>组合,冒号前后不能加空格,也不能额外添加引号、换行等内容。检查环境变量冲突
cdsapi优先读取系统环境变量CDSAPI_KEY和CDSAPI_URL,若这些变量存在会覆盖配置文件设置。在终端执行以下命令检查:echo $CDSAPI_KEY echo $CDSAPI_URL若输出内容格式错误,或不需要使用环境变量,可在
~/.bash_profile、~/.zshrc等配置文件中删除对应环境变量设置,重启终端后重试。修正配置文件权限
Mac上.cdsapirc需设置为仅当前用户可读,否则可能导致读取失败。执行以下命令修改权限:chmod 600 ~/.cdsapirc确认UID和APIKEY的正确性
登录CDS BETA网站进入个人账户页面,直接复制完整的key值(该值本身就是<UID>:<APIKEY>格式),粘贴到.cdsapirc的key:后即可,无需自行拆分或修改。简化客户端初始化
代码中保持client = cdsapi.Client()即可,不要手动指定key参数,让客户端自动读取配置文件内容。
内容的提问来源于stack exchange,提问作者Alanis Immanuel Valbuena

