Робота з API: створення пайплайнів даних за допомогою бібліотеки Python Requests

Вступ

У сучасному світі, що базується на даних, API (інтерфейси прикладного програмування) часто є шлюзом для збору, перетворення та роботи з даними з різних платформ і сервісів. Незалежно від того, чи працюєте ви з API соціальних мереж для збору даних користувачів, чи отримуєте інформацію в режимі реального часу з фінансових сервісів, API є незамінними інструментами для інженерів даних, аналітиків і науковців.

У цій публікації ви дізнаєтеся, як використовувати бібліотеку Python Requests для взаємодії з API, отримання даних та побудови базового пайплайну даних. Ми розберемо процес створення запитів API, обробки відповідей, перетворення даних і, нарешті, їх зберігання в базі даних для аналізу.

Якщо ви тільки починаєте свою кар’єру в галузі інженерії даних або готуєтеся до співбесід, цей посібник стане корисним інструментом у вашому арсеналі.


Розділ 1: Розуміння API та бібліотеки запитів

Що таке API?

API — це посередники, які дозволяють різним програмним застосункам спілкуватися між собою. Уявіть собі API як офіціанта в ресторані. Офіціант приймає ваше замовлення (ваш запит API), спілкується з кухнею (сервером) і доставляє вам страву (відповідь API).

Наприклад, ви можете використовувати API для збору даних про погоду, ціни на акції або навіть інформацію про користувачів з таких платформ, як Twitter.

Введення до бібліотеки Requests для Python

Бібліотека Requests — це простий, але потужний інструмент, який дозволяє розробникам Python легко взаємодіяти з API, надсилаючи HTTP-запити та обробляючи відповіді. Він ідеально підходить для отримання даних з API та інтеграції їх у ваш пайплайн.

Щоб встановити бібліотеку Requests, виконайте цю команду в терміналі:

pip install requests

Ось простий приклад того, як його використовувати:

import requests
# Make a GET request to an API
response = requests.get('https://api.example.com/data')
print(response.json())

Цей код відправляє GET-запит до API та виводить відповідь у форматі JSON.


Розділ 2: Створення запитів API та обробка відповідей

Розуміння методів HTTP

API зазвичай підтримують різні методи HTTP, найпоширенішими з яких є:

  • GET: Отримати дані з сервера
  • POST: Відправити дані на сервер
  • PUT: Оновити існуючі дані
  • DELETE: Видалити дані

У цьому посібнику ми зосередимося на GET-запитах, які використовуються для отримання даних з API.

Відправлення запиту GET

Припустимо, ви отримуєте дані з публічного API, такого як OpenWeatherMap. Ось як можна використовувати бібліотеку Requests для отримання даних про погоду в місті:

import requests
API_KEY = 'your_api_key'
city = 'London'
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={API_KEY}"
# Send GET request
response = requests.get(url)
# Check if the request was successful
if response.status_code == 200:
    data = response.json()
    print(f"Weather in {city}: {data['weather'][0]['description']}")
else:
    print("Failed to retrieve data")

Цей код відправляє GET-запит до API OpenWeatherMap, отримує дані про погоду в Лондоні та виводить їх на екран.

Поширена помилка: не перевіряти статус відповіді

Поширеною помилкою є забування перевірити статус відповіді. Завжди перевіряйте, чи ваш запит був успішним, перевіряючи response.status_code. Статус-код 200 означає, що запит був успішним.

Оптимізований код:

if response.status_code == 200:
    # Обробити дані
else:
    print(f«Помилка: {response.status_code}»)

Розділ 3: Перетворення даних API для вашого пайплайну

Основи перетворення даних

Тепер, коли ви отримали необроблені дані з API, настав час їх перетворити. Необроблені дані API часто бувають безладними або неструктурованими, що не дозволяє відразу ж використовувати їх для аналізу.

Наприклад, припустимо, ви хочете витягти певні поля, такі як температура і вологість, і переформатувати їх для вашого пайплайну.

Ось як витягти ключову інформацію з даних API OpenWeatherMap:

# Extract key data
weather_data = {
    'city': data['name'],
    'temperature': data['main']['temp'],
    'humidity': data['main']['humidity']
}
print(weather_data)

Розділ 4: Зберігання даних API в базі даних

Завантаження даних у базу даних SQL

Після очищення та перетворення даних наступним кроком є їх збереження в базі даних, щоб ви могли згодом здійснювати запити та аналізувати їх. Ви можете легко використовувати SQLAlchemy та Pandas для завантаження даних у базу даних PostgreSQL.

Спочатку встановіть необхідні бібліотеки:

pip install sqlalchemy psycopg2 pandas

Тепер використовуйте SQLAlchemy для підключення до вашої бази даних і вставте дані API:

import pandas as pd
from sqlalchemy import create_engine
# Create a DataFrame
df = pd.DataFrame([weather_data])
# Connect to your PostgreSQL database
engine = create_engine('postgresql+psycopg2://user:password@localhost/mydatabase')
# Load data into the database
df.to_sql('weather', engine, index=False, if_exists='append')

Поширена помилка: не обробка дублікатів

Під час завантаження даних у базу даних дуже важливо обробляти дублікати записів. Використовуйте аргумент if_exists, щоб уникнути помилкового заміщення існуючих таблиць.


Висновок

У цьому посібнику ви дізналися, як взаємодіяти з API за допомогою бібліотеки Requests для Python, перетворювати дані та зберігати їх у базі даних SQL. Автоматизувавши цей процес, ви можете створити потужний пайплайн даних, який постійно витягує дані з зовнішніх джерел для аналізу.

Завдяки цим навичкам ви тепер можете застосовувати інтеграцію API до більш складних проектів і будувати більш досконалі пайплайни даних.

Що далі? Спробуйте попрацювати з різними API, побудуйте власні пайплайни даних і експериментуйте з автоматизацією завдань для своїх проектів з інженерії даних. Продовжуйте кодити і досліджувати!


❤️ Знайшли це корисним? Поділіться нею з кимось, кому вона може бути корисною! Буде чудово, якщо ви поплескаєте в долоні 👏 – вони допоможуть більшій кількості людей відкрити для себе цей контент. І звичайно, я б хотіла почути ваші думки!

🎯 Дякую, що прочитали! Якщо вам сподобалось, будь ласка, натисніть кнопку «Підписатися», щоб бути в курсі моїх останніх публікацій.

🚀 Хочете зв’язатися? Не соромтеся звертатися до мене на LinkedIn.

Ознайомтеся з деякими з моїх останніх статей нижче 👇

https://data-life-ua.com/db/stvorennia-pershoho-konveiera-etl-za-dopomohoiu-python-ta-sql/

https://data-life-ua.com/db/sql/krashchi-praktyky-optymizatsii-sql-zapytiv

https://data-life-ua.com/db/robota-z-velykymy-masyvamy-danykh-v-sql/

Простою мовою 🚀

Дякуємо, що ви є частиною спільноти In Plain English! Перш ніж ви підете:

  • Не забудьте аплодувати і підписатися на автора ️👏
  • Слідкуйте за нами: XLinkedIn | YouTube | Discord | Newsletter
  • Відвідайте наші інші платформи: CoFeed | Differ
  • Більше контенту на PlainEnglish.io

ОРИГІНАЛ СТАТТІ:Working with APIs: Building Data Pipelines Using Python Requests Library

АВТОР СТАТІ:Satyam Sahu

🚀Долучайтесь до нашої спільноти Telegram:

🚀Долучайтесь до нашої спільноти FaceBook:

🚀Долучайтесь до нашої спільноти Twiter X:

Leave a Reply