Рубрики
Без рубрики

Создание вызовов API в Python

Сфера применения: этот пост поможет вам научиться делать вызовы API с помощью Python для получения данных (получить … Теги с питоном, наукой данных, программированием, машинным обучением.

Область: этот пост поможет вам научиться делать вызовы API с помощью Python для получения данных (получить запросы).

Данные были присвоены в наши дни первостепенное значение, потому что они управляют приложениями/предприятиями. Приложение может быть веб -сайтом, наукой данных или моделью машинного обучения и т. Д. Следовательно, важно научиться получить эти данные для обслуживания вашего приложения, и этот пост поможет вам понять то же самое.

Примечание: мы рассмотрим некоторые фрагменты кода, чтобы понять концепции. Полный код можно найти здесь

Что такое API?

В основных терминах API похожи на канал, который позволяет приложениям общаться (отправлять запросы, получать данные и наоборот) друг с другом.

Источник: средний

Сделайте свой звонок API

Подожди, но как? Что ж, существуют разные способы извлечения данных в Python (например: сокет и т. Д.), Для этого поста мы будем использовать Запросы Модуль в Python, Запросы это простая, но элегантная библиотека HTTP. Чтобы установить это использовать следующую команду

pip install requests

Чтобы проверить установленную версию. Используйте эту команду

 pip freeze | grep requests
 requests==2.22.0

Подробнее о Запросы

Похоже, ваша среда готова бросить несколько запросов. Давайте возьмем популярный dev.to api то есть https://dev.to/api/articles

def get_data(self, api):
        response = requests.get(f"{api}")
        if response.status_code == 200:
            print("sucessfully fetched the data")
            self.formatted_print(response.json())
        else:
            print(f"Hello person, there's a {response.status_code} error with your request")

Как только данные будут получены, это будет выглядеть так.

Как вы видите выше, мы сначала проверяем код состояния, а затем печатаем данные. Этот код рассказывает нам о ответе, который был получен на основе наших запросов. 200 Код говорит, что мы успешно получили информацию. Несколько кодов указывают на разные ответы, как показано ниже

Код Статус Описание
200 ХОРОШО Запрос был выполнен.
201 Созданный Новый ресурс был успешно создан.
400 Плохой запрос Запрос был недействительным.
401 Несанкционированный Запрос не включал токен аутентификации или токен аутентификации истек.
403 Запрещенный У клиента не было разрешения на доступ к запрошему ресурсу.
404 не обнаружена Запрашиваемый ресурс не был найден.
405 метод не разрешен Метод HTTP в запросе не был поддержан ресурсом. Например, метод удаления не может использоваться с API агента.
409 Конфликт Запрос не может быть выполнен из -за конфликта. Например, API папки Post ContentStore не может завершить, если заданный файл или имя папки уже существует в родительском месте.
500 Внутренняя Ошибка Сервера Запрос не был завершен из-за внутренней ошибки на стороне сервера.
503 Сервис недоступен Сервер был недоступен.

Точно так же мы также можем сделать вызов API вместе с некоторыми параметрами. В нашем случае давайте возьмем статьи конкретного пользователя – меня:).

    parameters = {
            "username": "kedark"
        }

Я сохранил параметры в переменной, и теперь давайте сделаем вызов API с тем же.

def get_user_data(self, api, parameters):
        response = requests.get(f"{api}", params=parameters)
        if response.status_code == 200:
            print("sucessfully fetched the data with parameters provided")
            self.formatted_print(response.json())
        else:
            print(
                f"Hello person, there's a {response.status_code} error with your request")

Полученные данные будут выглядеть так, то есть мои сообщения на разработке

Ну, вы только что получили данные, используя запрос API.

Чтобы распечатать данные в нашей программе, мы используем response.json () Метод он возвращает объект JSON в результате (если результат был записан в формате JSON, если не вызывает ошибку).

Точно так же у нас есть разные методы, которые возвращают другую информацию

Возвращает кажущуюся кодировку vention_encoding
Закрывает соединение с сервером Закрыть()
Возвращает содержание ответа, в байтах содержание
Возвращает объект cookiejar с файлами cookie, отправленными обратно с сервера печенье
Возвращает время Delta Delta со временем, прошедшим с отправки запроса на прибытие ответа прошло
Возвращает кодирование, используемое для декодирования R.Text кодирование
Возвращает словарь заголовков ответов заголовки
Возвращает список объектов ответа, удерживающих историю запроса (URL) история
Возвращает True, если ответ является постоянным перенаправленным URL, в противном случае неверно is_permanent_redirect
Возвращает True, если ответ был перенаправлен, в противном случае ЛОЖЬ is_redirect
Итерация из -за ответа iter_content ()
Итерации над линиями ответа iter_lines ()
Возвращает объект JSON результата (если результат был записан в формате JSON, если нет, он вызывает ошибку) json ()
Возвращает ссылки на заголовок Ссылки
Возвращает объект PredieRrequest для следующего запроса в перенаправлении следующий
Возвращает true, если status_code меньше 400, в противном случае неверно в порядке
Если возникает ошибка, этот метод возвращает объект httperror Raise_for_status ()
Возвращает текст, соответствующий коду состояния причина
Возвращает объект запроса, который запросил этот ответ запрос
Возвращает число, которое указывает на статус (200 в порядке, 404 не найден) status_code
Возвращает содержание ответа в Unicode текст
Возвращает URL -адрес ответа URL

Источник: W3

Ну, вы можете попробовать их один за другим. Это будет хорошее упражнение. Эти данные можно использовать для подачи вашего приложения сейчас. Если вы предпочитаете использовать CSV, полученный JSON может быть легко преобразован в CSV, этот пост на Stackoverflow Как Can-i-convert-json-to-csv может помочь вам достичь этого.

Код

Вы можете использовать этот код для выполнения вашего первого запроса API

Это все для этого поста, ребята. Надеюсь, вам понравилось. Не забудьте ❤ или 📑 эта статья, если вы это сделали.

Удачного дня, счастливого кодирования!

Оригинал: “https://dev.to/kedark/making-api-calls-in-python-17pk”