类型错误:“tuple”对象在 python cdsapi 中不可调用

Aks*_*ay 4 python

我正在尝试借助 python 的 cdsapi 模块检索数据。但给出了以下错误

    2020-10-19 12:55:52,780 INFO Sending request to https://cds.climate.copernicus.eu/api/v2/resources/reanalysis-era5-press
Traceback (most recent call last):
  File "cds.py", line 10, in <module>
    }, 'download.grib')
  File "build/bdist.linux-x86_64/egg/cdsapi/api.py", line 229, in retrieve
  File "build/bdist.linux-x86_64/egg/cdsapi/api.py", line 241, in _api
  File "build/bdist.linux-x86_64/egg/cdsapi/api.py", line 358, in wrapped
  File "/home/apps/SiteSoftwares/gnu/PYTHONPACKAGES/2.7.9/ucs4/gnu/4.8.5/REQUESTS/2.18.4/lib/python2.7/site-packages/req.4-py2.7.egg/requests/sessions.py", line 555, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/home/apps/SiteSoftwares/gnu/PYTHONPACKAGES/2.7.9/ucs4/gnu/4.8.5/REQUESTS/2.18.4/lib/python2.7/site-packages/req.4-py2.7.egg/requests/sessions.py", line 494, in request
    prep = self.prepare_request(req)
  File "/home/apps/SiteSoftwares/gnu/PYTHONPACKAGES/2.7.9/ucs4/gnu/4.8.5/REQUESTS/2.18.4/lib/python2.7/site-packages/req.4-py2.7.egg/requests/sessions.py", line 437, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/home/apps/SiteSoftwares/gnu/PYTHONPACKAGES/2.7.9/ucs4/gnu/4.8.5/REQUESTS/2.18.4/lib/python2.7/site-packages/req.4-py2.7.egg/requests/models.py", line 309, in prepare
    self.prepare_auth(auth, url)
  File "/home/apps/SiteSoftwares/gnu/PYTHONPACKAGES/2.7.9/ucs4/gnu/4.8.5/REQUESTS/2.18.4/lib/python2.7/site-packages/req.4-py2.7.egg/requests/models.py", line 540, in prepare_auth
    r = auth(self)
TypeError: 'tuple' object is not callable
Run Code Online (Sandbox Code Playgroud)

我已按照以下链接中的建议注册并安装 cdsapi 客户端密钥

https://cds.climate.copernicus.eu/api-how-to

我的简单代码片段如下所示

import cdsapi
cds = cdsapi.Client()
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')
Run Code Online (Sandbox Code Playgroud)

这有什么问题吗?

tur*_*erm 6

如果您已登录,从说明中看出来不是很明显,但在key文件字段下.cdsapirc,您需要用户ID 和 api 密钥,如下所示:

key: $user_id:$api_key
Run Code Online (Sandbox Code Playgroud)

我也遇到了这个问题,通过添加我的用户 ID 解决了它。