Ошибка типа: объект ‘tuple’ не вызывается в python cdsapi

#python

#python

Вопрос:

Я пытаюсь извлечь данные с помощью модуля cdsapi python. но выдает следующую ошибку

     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
  

Я зарегистрировал и установил клиентский ключ 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')
  

что в этом плохого??

Комментарии:

1. Пожалуйста, отправьте полное сообщение об ошибке, включая обратную трассировку.

2. опубликована подробная ошибка. Пожалуйста, ознакомьтесь с этим

3. попробуйте изменить версию python. для меня 3.6 не удалось импортировать пакет, а 3.7 запустить код без проблем

4. та же ошибка с python 3.7

Ответ №1:

Это не очень очевидно из инструкций, если вы вошли в систему, но в key поле вашего .cdsapirc файла вам нужны как идентификатор пользователя, так и ключ api как:

 key: $user_id:$api_key
  

У меня тоже была эта проблема, и я решил ее, указав свой идентификатор пользователя.

Ответ №2:

У меня была такая же проблема. После входа на веб-сайт Copernicus и принятия условий лицензии по следующему URL-адресу моя проблема решена:

https://cds.climate.copernicus.eu/cdsapp /#!/условия/лицензия на использование-copernicus-продукты

Ответ №3:

Проблема решена. Существует проблема в файле ~/.cdsapirc, который необходимо правильно настроить. После настройки программа работает нормально.

Комментарии:

1. было бы хорошо, если бы вы углубились в детали, имея ту же ошибку

2. @Rafael возможно, вам не хватает вашего идентификатора пользователя в key поле?