Создаем Python-экспорт SEO action plan в CSV
CSV удобно открыть в Excel, Google Sheets или загрузить в таск-трекер.
import csv
from pathlib import Path
import sqlite3
db_path = Path("seo_lab_from_zero.db")
csv_path = Path("seo_action_plan_export.csv")
query = '''
SELECT problem_group, priority, url, recommended_action
FROM seo_action_plan
ORDER BY priority, problem_group, url
'''
with sqlite3.connect(db_path) as connection:
rows = connection.execute(query).fetchall()
with csv_path.open("w", newline="", encoding="utf-8") as file:
writer = csv.writer(file)
writer.writerow(["problem_group", "priority", "url", "recommended_action"])
writer.writerows(rows)
print(f"Exported {len(rows)} rows to {csv_path}")
import csv — Подключает модуль csv, чтобы записывать результаты SQL-запросов в CSV-файл.from pathlib import Path — Подключает Path, чтобы работать с путями к файлам аккуратно и переносимо.import sqlite3 — Подключает встроенный модуль Python для работы с SQLite.пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.db_path = Path("seo_lab_from_zero.db") — Создает переменную с путем к файлу базы данных.csv_path = Path("seo_action_plan_export.csv") — Создает переменную с именем CSV-файла, куда будет записан отчет.пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.query = ''' — Начинает текст SQL-запроса, который Python выполнит внутри SQLite.SELECT problem_group, priority, url, recommended_action — Это строка Python-кода, которая помогает открыть базу, выполнить SQL или обработать результат.FROM seo_action_plan — Это строка Python-кода, которая помогает открыть базу, выполнить SQL или обработать результат.ORDER BY priority, problem_group, url — Это строка Python-кода, которая помогает открыть базу, выполнить SQL или обработать результат.''' — Закрывает или открывает многострочную строку Python.пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.with sqlite3.connect(db_path) as connection: — Открывает подключение к SQLite; Python сам закроет его после блока.rows = connection.execute(query).fetchall() — Передает SQL-команду в SQLite через открытое подключение.пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.with csv_path.open("w", newline="", encoding="utf-8") as file: — Открывает CSV-файл для записи в кодировке UTF-8.writer = csv.writer(file) — Создает объект, который умеет записывать строки в CSV.writer.writerow(["problem_group", "priority", "url", "recommended_action"]) — Записывает одну строку в CSV, обычно строку заголовков.writer.writerows(rows) — Записывает одну строку в CSV, обычно строку заголовков.пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.print(f"Exported {len(rows)} rows to {csv_path}") — Печатает сообщение в терминал, чтобы вы увидели результат выполнения.Сохраните код в export_action_plan.py. После запуска появится файл seo_action_plan_export.csv.
Проверьте, что вы работаете в файле seo_lab_from_zero.db, скопировали блок полностью и не потеряли точку с запятой в конце SQL-команды.