Олег Марков
Python get — методы получения данных
Введение
Методы получения данных — важная часть взаимодействия приложений с внешними сервисами. В Python для этого чаще всего используют GET-запросы через библиотеку requests или встроенные возможности работы с веб-сервисами. GET-запросы позволяют извлекать информацию с серверов, обрабатывать ответы и интегрировать данные в приложение.
В этой статье мы разберём, как выполнять GET-запросы в Python, передавать параметры, обрабатывать ответы и работать с JSON-данными.
Базовый GET-запрос
Простейший пример получения данных с помощью requests:
import requests
url = "https://jsonplaceholder.typicode.com/posts/1"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
print(data)
else:
print("Ошибка:", response.status_code)requests.get(url)отправляет запрос на сервер.response.status_codeпроверяет статус ответа.response.json()преобразует JSON в словарь Python.
GET-запрос с параметрами
Для передачи параметров запроса используют params:
params = {"userId": 1}
response = requests.get("https://jsonplaceholder.typicode.com/posts", params=params)
print(response.json())GET-параметры автоматически добавляются к URL, что удобно для фильтрации и сортировки данных на сервере.
При работе с GET-запросами важно уметь обрабатывать ответы и ошибки сервера. Чтобы глубже изучить работу с HTTP-запросами и API, рекомендуем курс Основы Python. Курс содержит 209 уроков и 34 упражнения, AI-тренажёры для практики 24/7, решение задач с живым ревью наставника и еженедельные встречи с менторами.
GET-запрос с заголовками
Для авторизации или передачи дополнительных данных используют заголовки:
headers = {"Authorization": "Bearer your_token_here"}
response = requests.get("https://jsonplaceholder.typicode.com/posts", headers=headers)
print(response.json())- Заголовки передаются через словарь
headers. - Полезно для работы с защищёнными API.
Обработка ошибок и таймауты
try:
response = requests.get("https://jsonplaceholder.typicode.com/posts", timeout=5)
response.raise_for_status()
print(response.json())
except requests.exceptions.HTTPError as errh:
print("HTTP ошибка:", errh)
except requests.exceptions.ConnectionError as errc:
print("Ошибка соединения:", errc)
except requests.exceptions.Timeout as errt:
print("Таймаут:", errt)
except requests.exceptions.RequestException as err:
print("Другая ошибка:", err)timeoutзадаёт максимальное время ожидания ответа.raise_for_status()выбрасывает исключение при ошибках HTTP.
Частые ошибки
- Игнорирование проверки статуса ответа.
- Неправильная работа с параметрами запроса.
- Отсутствие обработки исключений.
- Хранение токенов авторизации в коде.
Частозадаваемые вопросы
Можно ли использовать GET для отправки больших объёмов данных? Нет, для больших объёмов данных лучше использовать POST-запросы.
Что делать при невалидном ответе сервера? Использовать обработку исключений и проверку кода ответа.
Как фильтровать данные на сервере?
Через GET-параметры, передаваемые в словаре params.
Можно ли комбинировать GET и HTTPS? Да, GET-запросы через HTTPS обеспечивают шифрование и безопасность данных.
Заключение
Методы получения данных через GET-запросы в Python позволяют эффективно взаимодействовать с API и интегрировать внешние сервисы в приложение. Использование параметров, заголовков и обработка ошибок делает код надёжным и безопасным. Использование GET-запросов ускоряет разработку и упрощает интеграцию данных. Для закрепления навыков работы с GET-запросами и изучения дополнительных возможностей Python рекомендуем курс Основы Python. В первых 3 модулях курса доступно бесплатное содержание, что позволяет сразу практиковаться с отправкой GET-запросов, обработкой JSON и параметров, а также понять структуру курса до полного изучения.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев