🐍 Как работать с API на Python
В этой статье ты узнаешь, как работать с API на Python, с использованием популярной библиотеки requests.

Если вы начинаете изучать Python и хотите научиться взаимодействовать с веб-сервисами — поздравляем! Вы на правильном пути.
Сегодня мы разберём самый простой и наглядный способ сделать HTTP-запрос к публичному API и получить данные в формате JSON.
Мы будем использовать:
- Публичный тестовый API: https://jsonplaceholder.typicode.com/posts
- Встроенный модуль Python:
requests - Обработку ответа как обычный Python-словарь
Всё это — без сложных терминов, только чёткие шаги и рабочий код.
Оглавление
Что такое API и зачем с ним работать?
API (Application Programming Interface) — это «мост» между вашей программой и внешним сервисом. Через API вы можете:
- Получать данные (например, список новостей, погоду, товары)
- Отправлять информацию (например, создавать заказ или публиковать пост)
- Управлять удалёнными сервисами
Большинство современных API используют HTTP-запросы и отдают данные в формате JSON — удобном и понятном как для людей, так и для программ.
Шаг 1. Установка необходимого модуля
Python не включает HTTP-запросы «из коробки», но есть официальный рекомендуемый модуль — requests.
Установите его с помощью pip:
pip install requests
💡 Совет: если вы используете виртуальное окружение (что рекомендуется), активируйте его перед установкой.
Шаг 2. Выбор публичного API
Мы будем работать с сервисом:
👉 https://jsonplaceholder.typicode.com/posts
Это бесплатный и открытый тестовый API, созданный специально для обучения. Он отдаёт 100 фиктивных «постов» (как статьи в блоге), каждый из которых содержит:
userId— идентификатор автораid— номер постаtitle— заголовокbody— текст поста
Пример одного элемента (сокращённо):
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat...",
"body": "quia et suscipit\nsuscipit recusandae..."
}
Шаг 3. Отправка GET-запроса
Создайте файл api_example.py и вставьте следующий код:
import requests
# 1. Отправляем GET-запрос к API
response = requests.get("https://jsonplaceholder.typicode.com/posts")
# 2. Проверяем, успешен ли запрос
if response.status_code == 200:
print("✅ Успешно получены данные")
else:
print(f"❌ Ошибка: статус {response.status_code}")
exit()
# 3. Преобразуем JSON-ответ в Python-объект
data = response.json() # Теперь это список словарей!
# 4. Выводим информацию о первых 3 постах
for post in data[:3]:
print(f"\n📄 Пост #{post['id']} (автор: user {post['userId']})")
print(f"Заголовок: {post['title']}")
print(f"Текст: {post['body'][:60]}...") # Первые 60 символов
Подробное объяснение кода
| ЧАСТЬ КОДА | ЧТО ДЕЛАЕТ |
requests.get(url) | Отправляет HTTP-запрос типаGET(получить данные) |
| response.status_code | Код ответа:200= всё хорошо,404= не найдено и т.д. |
| response.json() | Преобразует JSON-строку из ответа вPython-объект(список/словарь) |
| data[:3] | Берём только первые 3 элемента, чтобы не засорять консоль |
| post[‘title’] | Обращаемся к полям как к обычному словарю |
✅
response.json()работает только если сервер отдал JSON и заголовокContent-Typeуказан правильно (а в jsonplaceholder — всё в порядке).
Шаг 4. Запуск и результат
Выполните в терминале:
python api_example.py
Вы увидите примерно такой вывод:
✅ Успешно получены данные
📄 Пост #1 (автор: user 1)
Заголовок: sunt aut facere repellat provident occaecati excepturi optio reprehenderit
Текст: quia et suscipit
suscipit recusandae consequuntur expedita et cum...
📄 Пост #2 (автор: user 1)
Заголовок: qui est esse
Текст: est rerum tempore vitae
sequi sint nihil reprehenderit dolor beatae...
📄 Пост #3 (автор: user 1)
Заголовок: ea molestias quasi exercitationem repellat qui ipsa sit aut
Текст: et iusto sed quo iure
voluptatem occaecati omnis eligendi aut ad...
Шаг 5. Полезные улучшения
1. Получить только один пост (например, №5)
post_id = 5
response = requests.get(f"https://jsonplaceholder.typicode.com/posts/{post_id}")
if response.status_code == 200:
post = response.json()
print(f"Заголовок поста {post_id}: {post['title']}")
2. Обработка ошибок «по-взрослому»
try:
response = requests.get("https://jsonplaceholder.typicode.com/posts", timeout=5)
response.raise_for_status() # вызовет исключение при 4xx/5xx
data = response.json()
except requests.exceptions.RequestException as e:
print(f"Ошибка сети или сервера: {e}")
except ValueError:
print("Ответ не в формате JSON")
3. Сохранить данные в файл
import json
with open("posts.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
print("✅ Данные сохранены в posts.json")
Почему это полезно?
Умение работать с API открывает двери к:
- Парсингу данных с сайтов (даже динамических)
- Интеграции с Telegram Bot API, OpenWeather, GitHub и др.
- Созданию дашбордов, аналитики, автоматизации
А всё начинается с одного простого requests.get().
Заключение
Теперь вы умеете:
✅ Отправлять GET-запрос к публичному API
✅ Получать JSON-данные
✅ Преобразовывать их в удобный Python-формат
✅ Безопасно работать с ответом и выводить нужную информацию
Это базовый, но очень мощный навык для любого Python-разработчика.
Попробуйте сами:
- Получите все посты от пользователя с
userId = 3 - Посчитайте, сколько всего постов в ответе
- Выведите только заголовки
Удачи в изучении API! 🌐🐍
Если что-то осталось непонятным — пишите в комментариях! С радостью уточню, дополню или помогу с вашим кодом.
А чтобы не пропустить новые простые и полезные гайды по Python, автоматизации и разработке — подписывайтесь на мой Telegram-канал: https://t.me/pythonauto_org 🐍✨
Ваш интерес — лучшая мотивация для новых статей!