Проблемы с использованием модуля запросов в Python - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь использовать запросы для отправки данных JSON на конечную точку HTTP, но сейчас я получаю эти странные ошибки (я использовал их раньше без проблем).

Любое устранение неполадокочень ценится.

Код:

req = requests.post(HTTP_ENDPOINT, data=json.dumps(data))

Вывод:

AttributeError: модуль 'запросы' не имеет атрибута 'post'

Ответы [ 3 ]

0 голосов
/ 29 января 2019

Убедитесь, что HTTP_ENDPOINT и данные действительны, как показано ниже:

>>> import json

>>> url = 'https://api.github.com/some/endpoint'
>>> payload = {'some': 'data'}

>>> r = requests.post(url, data=json.dumps(payload))

Вместо того, чтобы самостоятельно кодировать dict, вы также можете передать его напрямую, используя параметр json (добавлен в версии 2.4.2) ион будет закодирован автоматически:

>>> r = requests.post(url, json=payload)

source is Более сложные запросы POST

0 голосов
/ 29 января 2019

Если у вас в папке есть файл questions.py, то python импортирует его как модуль перед пакетом запросов, который вы установили с помощью pip.

Именно поэтому в нем говорится, что запросы не имеют атрибута 'post'.Если вы определите переменную в вашем request.py следующим образом:

# requests.py
post = lambda *arg: print('unitended concequence')

Вы, скорее всего, увидите, как она распечатывает это утверждение, вместо того, чтобы жаловаться, что запросы на публикацию не содержат сообщения.Решение состоит в том, чтобы переименовать ваши файлы, чтобы они не скрывали пакеты, которые вы хотите импортировать.Например, измените request.py на my_requests.py.

0 голосов
/ 29 января 2019

Вы написали import requests вверху файла?Если нет, то это ваша проблема.Если да, то следующим этапом отладки для меня будет сделать print dir(requests), так как это скажет вам, какие атрибуты на самом деле имеет ваш объект запросов.

...