Байланысты: Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )
365 ПРИМЕЧАНИЕ Подобные простые вызовы должны возвращать полный набор результатов, поэтому значе-
ние, связанное с 'incomplete_results’, можно достаточно безопасно игнорировать . Но, если
ваша программа выдает более сложные вызовы API, обязательно проверяйте это значение .
Работа со словарем ответа
Итак, полученная при вызове API информация хранится в словаре, и мы можем
заняться работой с данными. Для начала построим сводку с обобщенными сведе-
ниями — это позволит убедиться в том, что вызов вернул ожидаемую информацию,
и перейти к анализу интересующих данных.
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("Total repositories:", response_dict['total_count'])
# Анализ информации о репозиториях.
repo_dicts = response_dict['items']
print("Repositories returned:", len(repo_dicts))
# Анализ первого репозитория.
repo_dict = repo_dicts[0]
print("\nKeys:", len(repo_dict))
for key in sorted(repo_dict.keys()):
print(key)
В точке
выводится значение, связанное с
'total_count'
, которое представляет
общее количество репозиториев Python в GitHub.
Значение, связанное с
'items'
, представляет собой список со словарями, каждый
из которых содержит данные об одном репозитории Python. В точке
этот список
словарей сохраняется в
repo_dicts
. Затем программа выводит длину
repo_dicts
,
чтобы пользователь видел, по какому количеству репозиториев имеется инфор-
мация.
Чтобы получить первое представление об информации, возвращенной по каждому
репозиторию, программа извлекает первый элемент из
repo_dicts
и сохраняет его
в
repo_dict
. Затем программа выводит количество ключей в словаре — это зна-
чение определяет объем доступной информации
. В точке
выводятся все ключи
словаря; по ним можно понять, какая информация включена в ответ.
Из сводки начинает вырисовываться более четкая картина полученных данных:
Status code: 200
Total repositories: 713062