Шаг 108. Создаем Python-экспорт SEO action plan в CSV

pythonГлава 10. Python и SQLite для SEO-автоматизации

Что делаем

Создаем Python-экспорт SEO action plan в CSV

Зачем SEO-специалисту

CSV удобно открыть в Excel, Google Sheets или загрузить в таск-трекер.

Код. Вставьте 1 в 1

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}")

Построчный разбор: что делает, для чего и как работает

Строка 1: import csv — Подключает модуль csv, чтобы записывать результаты SQL-запросов в CSV-файл.
Строка 2: from pathlib import Path — Подключает Path, чтобы работать с путями к файлам аккуратно и переносимо.
Строка 3: import sqlite3 — Подключает встроенный модуль Python для работы с SQLite.
Строка 4: пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.
Строка 5: db_path = Path("seo_lab_from_zero.db") — Создает переменную с путем к файлу базы данных.
Строка 6: csv_path = Path("seo_action_plan_export.csv") — Создает переменную с именем CSV-файла, куда будет записан отчет.
Строка 7: пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.
Строка 8: query = ''' — Начинает текст SQL-запроса, который Python выполнит внутри SQLite.
Строка 9: SELECT problem_group, priority, url, recommended_action — Это строка Python-кода, которая помогает открыть базу, выполнить SQL или обработать результат.
Строка 10: FROM seo_action_plan — Это строка Python-кода, которая помогает открыть базу, выполнить SQL или обработать результат.
Строка 11: ORDER BY priority, problem_group, url — Это строка Python-кода, которая помогает открыть базу, выполнить SQL или обработать результат.
Строка 12: ''' — Закрывает или открывает многострочную строку Python.
Строка 13: пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.
Строка 14: with sqlite3.connect(db_path) as connection: — Открывает подключение к SQLite; Python сам закроет его после блока.
Строка 15: rows = connection.execute(query).fetchall() — Передает SQL-команду в SQLite через открытое подключение.
Строка 16: пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.
Строка 17: with csv_path.open("w", newline="", encoding="utf-8") as file: — Открывает CSV-файл для записи в кодировке UTF-8.
Строка 18: writer = csv.writer(file) — Создает объект, который умеет записывать строки в CSV.
Строка 19: writer.writerow(["problem_group", "priority", "url", "recommended_action"]) — Записывает одну строку в CSV, обычно строку заголовков.
Строка 20: writer.writerows(rows) — Записывает одну строку в CSV, обычно строку заголовков.
Строка 21: пустая строка — Пустая строка отделяет один смысловой блок кода от другого, чтобы код легче читался.
Строка 22: print(f"Exported {len(rows)} rows to {csv_path}") — Печатает сообщение в терминал, чтобы вы увидели результат выполнения.

Что должно получиться

Сохраните код в export_action_plan.py. После запуска появится файл seo_action_plan_export.csv.

Если появилась ошибка

Проверьте, что вы работаете в файле seo_lab_from_zero.db, скопировали блок полностью и не потеряли точку с запятой в конце SQL-команды.