urllib.ошибка.HTTPError: ошибка HTTP 400: неверный запрос (bottlenose)

#python #api #amazon-web-services #bottlenose

#python #API #amazon-веб-сервисы #bottlenose

Вопрос:

После установки bottlenose и получения моих ключей API и ассоциированных тегов я попытался следовать инструкциям в этом руководстве: https://github.com/lionheart/bottlenose

(Я удалил свои ключи api)

Это ошибка, которую я получаю:

 >>> import bottlenose
>>> amazon = bottlenose.Amazon(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_ASSOCIATE_TAG)
>>> response = amazon.ItemLookup(ItemId="B007OZNUCE")
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
response = amazon.ItemLookup(ItemId="B007OZNUCE")
File "C:UsersWindowsAppDataLocalProgramsPythonPython35libsite-packagesbottlenoseapi.py", line 265, in __call__
{'api_url': api_url, 'cache_url': cache_url})
File "C:UsersWindowsAppDataLocalProgramsPythonPython35libsite-packagesbottlenoseapi.py", line 226, in _call_api
return urllib2.urlopen(api_request, timeout=self.Timeout)
File "C:UsersWindowsAppDataLocalProgramsPythonPython35liburllibrequest.py", line 162, in urlopen
return opener.open(url, data, timeout)
File"C:UsersWindowsAppDataLocalProgramsPythonPython35liburllibrequest.py", line 471, in open
response = meth(req, response)
File"C:UsersWindowsAppDataLocalProgramsPythonPython35liburllibrequest.py", line 581, in http_response
'http', request, response, code, msg, hdrs)
File"C:UsersWindowsAppDataLocalProgramsPythonPython35liburllibrequest.py", line 509, in error
return self._call_chain(*args)
File"C:UsersWindowsAppDataLocalProgramsPythonPython35liburllibrequest.py", line 443, in _call_chain
result = func(*args)
File"C:UsersWindowsAppDataLocalProgramsPythonPython35liburllibrequest.py", line 589, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request
  

Ответ №1:

Убедитесь, что у вас правильно настроены системные часы.

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

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

1. Я проверил в Ubuntu время и установил свое местоположение, но никаких изменений не появилось.

Ответ №2:

Вы должны указать значение для ключей

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_ASSOCIATE_TAG

Чтобы получить ключи, вы должны зарегистрироваться на AWS

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

1. у меня есть эти ключи. Я удалил их, чтобы сделать этот пост. Я не хотел вставлять сюда свои ключи.

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

3. идентификатор элемента присутствует. Я думаю, что проблема связана с ассоциированным тегом. Как я могу это исправить, если это проблема?

4. В моем случае я проверил три параметра, и они работают хорошо через Интернет с помощью scracthpad (мой код с использованием Ubuntu).