05. Работа с JSON, CSV и API
Работа с JSON, CSV и API
Описание: В этом уроке мы научимся сохранять данные в форматах JSON и CSV, а также получать их из интернета с помощью API. Эти навыки важны для создания приложений, которые обмениваются данными с другими сервисами.1. Что такое JSON и зачем он нужен
JSON (JavaScript Object Notation) — лёгкий формат обмена данными между программами. Его часто используют веб-сервисы и API.Пример JSON:
{
"name": "Anna",
"age": 25,
"skills": ["Python", "HTML", "SQL"]
}
2. Работа с JSON в Python
Python имеет встроенный модуль json, который позволяет читать и записывать такие файлы.
import json# Python → JSON
user = {
'name': 'Anna',
'age': 25,
'skills': ['Python', 'SQL']
}
with open('user.json', 'w', encoding='utf-8') as f:
json.dump(user, f, ensure_ascii=False, indent=2)
print('Файл user.json успешно создан!')
- dump() — записывает данные в файл.
- ensure_ascii=False — сохраняет кириллицу.
- indent=2 — делает красивое форматирование.
Теперь прочитаем файл обратно:
with open('user.json', 'r', encoding='utf-8') as f:
data = json.load(f)
print(data)
Совет: JSON идеально подходит для хранения настроек, профилей пользователей или списков задач.
3. Работа с CSV-файлами
CSV (Comma-Separated Values) — это таблица в текстовом виде, где значения разделены запятыми (или точками с запятой).
import csv# Запись данных
with open('users.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['Имя', 'Возраст', 'Город'])
writer.writerow(['Анна', 25, 'Москва'])
writer.writerow(['Иван', 30, 'Минск'])
print('Файл users.csv создан!')
Чтение CSV-файла:
with open('users.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
print(row)
4. Использование requests для работы с API
API (Application Programming Interface) позволяет программам обмениваться данными. Например, получить прогноз погоды или курс валют.Для этого установим библиотеку requests:
pip install requests
Пример запроса к бесплатному API:
import requestsurl = 'https://api.github.com/users/octocat'
response = requests.get(url)
data = response.json()
print('Имя пользователя:', data['login'])
print('Публичных репозиториев:', data['public_repos'])
- requests.get() — делает HTTP-запрос.
- .json() — преобразует ответ в Python-объект.
5. Обработка ошибок при работе с API
Интернет-запрос может завершиться ошибкой, поэтому важно проверять статус ответа.
response = requests.get(url)
if response.status_code == 200:
print(' Успешно!')
else:
print(' Ошибка:', response.status_code)
6. Мини-проект: сохранение погоды в CSV
Создадим программу, которая получает погоду через API и сохраняет её в CSV.
import requests
import csvAPI_KEY = 'demo' # вставь свой ключ, если требуется
CITY = 'Tashkent'
url = f'https://api.open-meteo.com/v1/forecast?latitude=41.3&longitude=69.3¤t_weather=true'
response = requests.get(url)
data = response.json()
weather = data['current_weather']
print('Температура:', weather['temperature'], '°C')
with open('weather.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['Температура', 'Скорость ветра', 'Время'])
writer.writerow([weather['temperature'], weather['windspeed'], weather['time']])
print('Данные сохранены в weather.csv!')
7. Лучшие практики при работе с API
- Проверяйте статус-код (200 — всё ок, 404 — не найдено, 500 — ошибка сервера).
- Используйте try/except для надёжности.
- Кэшируйте результаты, если API ограничивает количество запросов.
- Не храните API-ключи в коде — используйте переменные окружения.
8. Работа с JSON-API и вложенными данными
Если данные сложные, их можно перебирать с помощью циклов и ключей.
users = {
'data': [
{'name': 'Anna', 'age': 25},
{'name': 'Ivan', 'age': 30}
]
}for user in users['data']:
print(user['name'], '-', user['age'])
Итоги урока
Теперь вы умеете:- Читать и записывать JSON-файлы.
- Работать с CSV-таблицами.
- Использовать requests для работы с API.
- Создавать небольшие программы для обмена данными с внешними сервисами.