Как использовать запросы Модуль Python для создания завихренных вызовов

Мне нужно использовать API, который вызывает вызовы cURL. API, показанный здесь: https://www.pivotaltracker.com/help/api/rest/v5 . Я кодирую в Python 2.7 и загружаю модуль Requests для использования для вызовов cURL, однако я не совсем уверен, как это сделать. Это то, что у меня есть до сих пор:

import requests username = 'my_username' password = 'my_password' url = 'https://www.pivotaltracker.com/n/projects/my_project_number' r = requests.get(url, auth=(username, password)) 

Теперь, когда у меня есть ответ r, что мне делать с ним, чтобы сделать вызовы cURL, чтобы использовать функции API, такие как функция GET / projects / {project_id} / epics / {epic_id}. Вызов cURL для этой функции:

 export TOKEN='your Pivotal Tracker API token' export PROJECT_ID=99 curl -X GET -H "X-TrackerToken: $TOKEN" "https://www.pivotaltracker.com/services/v5/projects/$PROJECT_ID/epics/4" 

Спасибо за любую помощь, которую вы можете предоставить!

EDIT (спасибо @Rob Watts) Теперь это мой код:

 import requests username = 'my_username' password = 'my_password' url = 'https://www.pivotaltracker.com/services/v5/me' r = requests.get(url, auth=(username, password)) response_json = r.json() token = response_json['api_token'] project_id = 'my_project_id' url = 'https://www.pivotaltracker.com/services/v5/projects/{}/epics/1' r = requests.get(url.format(project_id), headers={'X-TrackerToken':token}) print r.text 

Но он все еще не работает. Это результат:

 { "code": "unfound_resource", "kind": "error", "error": "The object you tried to access could not be found. It may have been removed by another user, you may be using the ID of another object type, or you may be trying to access a sub-resource at the wrong point in a tree." } 

Но в документации я ожидаю что-то вроде этого:

 { "created_at": "2014-08-26T12:00:00Z", "description": "Identify the systems and eliminate the rebel scum.", "id": 1, ... } 

One Solution collect form web for “Как использовать запросы Модуль Python для создания завихренных вызовов”

Похоже, первый вызов, который вы должны сделать, это конечная точка «/ me», а затем вытащите маркер API из ответа:

 import requests username = 'my_username' password = 'my_password' url = 'https://www.pivotaltracker.com/services/v5/me' r = requests.get(url, auth=(username, password)) response_json = r.json() token = response_json['api_token'] 

Вы можете получить некоторые другие вещи помимо вашего токена API с этой конечной точки. Взгляните на документацию для этой конечной точки, чтобы узнать, есть ли что-нибудь еще, что вам понадобится.

После того, как вы получили свой токен API, все остальные вызовы будут довольно простыми. Например:

 project_id = 'your_project_id' # could get this from the previous response r = requests.get('https://www.pivotaltracker.com/services/v5/projects/{}/epics/4'.format(project_id), headers={'X-TrackerToken':token}) 

Я объясню части вызова cURL, которые у них есть для этого примера, и как они переводят:

 export VARNAME 

Установите переменную для вызова cURL. Где вы видите $VARNAME , где используются переменные.

 -X GET 

Я не знаю, почему они включают это. Это просто указывает на использование GET, который является значением по умолчанию для cURL. Использование requests.get позаботится об этом. Однако для тех, у которых есть -X POST , вы будете использовать requests.post и т. Д.

 -H "X-TrackerToken: $TOKEN" 

Это указывает заголовок. Для запросов мы используем аргумент ключевого слова headers={key:value}headers={key:value} . В этом конкретном примере у нас есть headers={'X-TrackerToken':token} .

 "https://..." 

URL. Это первый аргумент. Переменные (например, $PROJECT_ID в вашем примере) могут быть вставлены с использованием метода format строк.

  • валютный код стран-джанго
  • Запись файла .CSV в Python, который работает как для Python 2.7+, так и для Python 3.3+ в Windows
  • Базовая карта Python «Утверждение не выполнено»
  • Как программно подсчитать количество файлов в архиве с помощью python
  • pandas dataframe to mysql db ошибка базы данных вкус mysql не поддерживается
  • Python pip говорит: pkg_resources.DistributionNotFound: pip == 1.4.1
  • Как очистить \ xc2 \ xa0 \ xc2 \ xa0 ... в текстовых данных
  • Как сохранить сессию ssh не истек с помощью paramiko?
  • Python - лучший язык программирования в мире.