Вступ
У сучасному світі, що базується на даних, 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! Перш ніж ви підете:
- Не забудьте аплодувати і підписатися на автора ️👏
- Слідкуйте за нами: X | LinkedIn | YouTube | Discord | Newsletter
- Відвідайте наші інші платформи: CoFeed | Differ
- Більше контенту на PlainEnglish.io
ОРИГІНАЛ СТАТТІ:Working with APIs: Building Data Pipelines Using Python Requests Library
АВТОР СТАТІ:Satyam Sahu
🚀Долучайтесь до нашої спільноти Telegram:
🚀Долучайтесь до нашої спільноти FaceBook:
🚀Долучайтесь до нашої спільноти Twiter X:
