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

We use cookies. Read the Privacy and Cookie Policy

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

python_repos.py

(1) import requests

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

(2)url = 'https://api.github.com/search/repositories?q=language:python &sort=stars'

(3)r = requests.get(url)

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

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

(5)response_dict = r.json()

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

print(response_dict.keys())

В точке (1) импортируется модуль requests. В точке (2) URL-адрес вызова API сохраняется в переменной, после чего модуль requests используется для вызова (3). Мы вызываем метод get() и передаем ему URL, а объект ответа сохраняется в переменной r. Объект ответа содержит атрибут status_code, в котором хранится признак успешного выполнения запроса. (Код 200 — признак успешного ответа.) В точке (4) программа выводит значение status_code, чтобы вы могли убедиться в том, что вызов был обработан успешно.

API возвращает информацию в формате JSON, поэтому в программе используется метод json() (5) для преобразования информации в словарь Python. Полученный словарь сохраняется в переменной response_dict.

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

Status code: 200

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

Код статуса 200 означает, что запрос был обработан успешно. Словарь ответа содержит всего три ключа: ‘items’, 'total_count' и 'incomplete_results'.

Примечание

Подобные простые вызовы должны возвращать полный набор результатов, поэтому значение, связанное с 'incomplete_results’, можно достаточно безопасно игнорировать. Но, если ваша программа выдает более сложные вызовы API, обязательно проверяйте это значение.