Книга «Изучаем Python»



Pdf көрінісі
бет198/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   194   195   196   197   198   199   200   201   ...   238
repositories, приказывает API провести поиск по всем репозиториям в GitHub.

Вопросительный знак после repositories означает, что мы собираемся передать 

аргумент. Символ q обозначает запрос (Query), а знак равенства начинает опре-

деление запроса (q=). Выражение language:python указывает, что запрашивается 

информация только по репозиториям, для которых основным языком указан 

Python. Завершающая часть, &sort=stars, сортирует проекты по количеству при-

своенных им звезд.

В следующем фрагменте приведены несколько начальных строк ответа. Вероятно, 

по виду ответа вы уже поняли, что этот URL-адрес не предназначен для обычных 

пользователей.

{

  "total_count": 713062,



  "incomplete_results": false,

  "items": [

    {

      "id": 3544424,



      "name": "httpie",

      "full_name": "jkbrzt/httpie",

      ...

Как видно из второй строки вывода, на момент написания книги на GitHub было 

найдено 713 062 проектов Python. Значение 

"incomplete_results"

 равно 

false


а значит, запрос был обработан успешно (информация не является неполной). Если 

бы у GitHub возникли проблемы с полной обработкой запроса API, то в этом поле 

было бы возвращено значение 

true

. Возвращаемые данные отображаются в списке 



"items"

 с информацией о самых популярных проектах Python на GitHub.




364    Глава 17  •  Работа с API

Установка пакета requests

Пакет 

requests


 предоставляет удобные средства для запроса информации с сайтов 

из программ Python и анализа полученных ответов. Чтобы установить 

requests

введите команду следующего вида:



pip install --user requests

Если вы еще не использовали 

pip

, обратитесь к разделу «Установка пакетов Python 



с использованием pip» на с. 227. (Возможно, вам придется использовать другую 

версию команды в зависимости от конфигурации системы.)

Обработка ответа API

Теперь мы напишем программу, которая выдает вызов API для поиска на Github 

проектов Python с наибольшим количеством звезд:

python_repos.py

import requests



# Создание вызова API и сохранение ответа.

url = 'https://api.github.com/search/repositories?q=language:python 



                            &sort=stars'

r = requests.get(url)



print("Status code:", r.status_code)

# Сохранение ответа API в переменной.

response_dict = r.json()



# Обработка результатов.

print(response_dict.keys())

В точке  импортируется модуль 

requests


. В точке  URL-адрес вызова API со-

храняется в переменной, после чего модуль 

requests

 используется для вызова . 

Мы вызываем метод 

get()


 и передаем ему URL, а объект ответа сохраняется 

в переменной 

r

. Объект ответа содержит атрибут 



status_code

, в котором хранится 

признак успешного выполнения запроса. (Код 200 — признак успешного ответа.) 

В точке  программа выводит значение 

status_code

, чтобы вы могли убедиться 

в том, что вызов был обработан успешно.

API возвращает информацию в формате JSON, поэтому в программе используется 

метод 

json()


  для преобразования информации в словарь Python. Полученный 

словарь сохраняется в переменной 

response_dict

.

Наконец, программа выводит ключи словаря 



response_dict

, и мы видим следу-

ющее:

Status code: 200



dict_keys(['items', 'total_count', 'incomplete_results'])

Код статуса 200 означает, что запрос был обработан успешно. Словарь ответа со-

держит всего три ключа: ‘

items


’, 

'total_count'

 и 

'incomplete_results'



.


Использование API веб-приложений    365



Достарыңызбен бөлісу:
1   ...   194   195   196   197   198   199   200   201   ...   238




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет