Как превратить Google Таблицы в базу данных с помощью Python

Знаете ли вы, что Google Таблицы можно использовать в качестве упрощенной базы данных?

Google Таблицы  —  это облачное приложение для работы с электронными таблицами, которое может хранить данные в структурированном виде, как и большинство систем управления базами данных. Вы также можете редактировать и удалять данные парой щелчков мыши, а также получать доступ к ним в режиме онлайн.

Хотя Google Таблицы имеют ограничения, например количество предлагаемых ячеек (до 10 миллионов) и вызовов API в минуту, можно рассматривать этот сервис как вариант бесплатной базы данных.

В данном руководстве будет рассказано и показано, как использовать Google Таблицы с помощью Python. Вы узнаете, как создать электронную таблицу и сохранить в ней данные с помощью Python, чтобы превратить Google Таблицы в собственную базу данных.

Оглавление

1. Подключение API и загрузка учетных данных

2. Превращение Google Таблиц в базу данных с помощью Python

  • Подключение к Google Таблицам
  • Создание пустой электронной таблицы
  • Совместное использование электронной таблицы
  • Открытие электронной таблицы и загрузка данных

3. Бонус: открытие любого файла из Google Таблиц с помощью Python

Это руководство также можно посмотреть в видеоформате на английском языке.

1. Подключение API Google Диска и Google Таблиц с загрузкой учетных данных

Чтобы подключить Google Таблицы к Python, нужно загрузить учетные данные в файл JSON. Для этого создадим новый проект.

Создание нового проекта

Чтобы создать новый проект, перейдите на этот сайт и выполните следующие шаги (нужно войти в свой Google-аккаунт).

  1. Выберите проект.
  2. Кликните на “Новый проект” (New Project).
  3. Когда загрузится новая страница, напишите название проекта и кликните “Создать” (Create).
Изображение автора

4. После создания проекта вы увидите следующее изображение:

Изображение автора

Кликните “Выбрать проект” (Select Project), и появится новая страница.

Подключение API Google Диска для нового проекта, создание учетных данных и их загрузка

После выбора проекта перейдите на левую панель и нажмите “API и Сервисы” (APIs & Services), а затем выберите “Библиотека” (Library), как показано ниже.

Изображение автора

Теперь на странице, приведенной ниже, нужно найти и подключить API Google Диска.

Изображение автора

Когда API Google Диска будет подключен, кликните “Создать учетные данные” (Create Credentials) в правом верхнем углу.

После этого выберите указанные ниже параметры и кликните “Далее” (Next).

Изображение автора

Дайте имя своему сервисному аккаунту и кликните “Создать и продолжить” (Create and Continue).

Изображение автора

Теперь нужно выбрать роль. В данном случае выбираем “Редактор” (Editor) в пункте “Проект” (Project), а затем нажимаем “Готово” (Done).

Изображение автора

После этого нужно снова открыть левую панель и нажать на “API и Сервисы” (APIs & Services), а затем выбрать “Учетные данные” (Credentials).

В нижней части страницы вы увидите раздел “Сервисный аккаунт” (Service Account). Здесь вам нужно нажать на свой клиентский email-адрес (учитывайте, что все файлы, которые будут созданы, сохранятся в этом клиентском email-адресе).

Изображение автора

Теперь перейдите в раздел “Ключи” (Keys) и нажмите на кнопку “Создать новый ключ” (Create new key).

Изображение автора

Затем нажмите “Создать” (Create). На ваш компьютер будет загружен JSON-файл с учетными данными. Переименуйте его в gs_credentials.json и переместите в ту же папку, где находится ваш Python-скрипт.

Наконец, осталось найти API Google Таблиц и подключить его так же, как API Google Диска.

2. Превращение Google Таблиц в базу данных с помощью Python

Подключение к Google Таблицам

Чтобы работать с Google Таблицами в Python, нужно установить gspread и oauth2client. Кроме того, мы будем использовать Pandas для чтения локальных данных и обновления их в Google Таблицах.

pip install gspread
pip install oauth2client
pip install pandas

Теперь импортируем библиотеки и подключаемся к Google Таблицам.

import gspread
from oauth2client.service_account import ServiceAccountCredentials
import pandas as pd

# Подсоединение к Google Таблицам
scope = ['https://www.googleapis.com/auth/spreadsheets',
"https://www.googleapis.com/auth/drive"]

credentials = ServiceAccountCredentials.from_json_keyfile_name("gs_credentials.json", scope)
client = gspread.authorize(credentials)

В приведенном выше коде подключаем доступ к определенным ссылкам в списке scope, затем в переменной credentials пишем имя загруженного ранее JSON-файла.

Наконец, создаем переменную client.

Создание пустой электронной таблицы

Создадим новую электронную таблицу с именем NewDatabase.

Для этого будем использовать метод .create для определенной ранее переменной client

sheet = client.create("NewDatabase")

Обратите внимание, что эта новая таблица пока доступна только для вашего сервисного аккаунта. Получить доступ к ней из Google-аккаунта можно с помощью электронной почты.

Совместное использование электронной таблицы

Поделитесь таблицей (sheet) со своим Google-аккаунтом. Для этого выполните приведенный ниже код:

sheet.share('your_email_goes_here', perm_type='user', role='writer')

После выполнения этого кода таблица появится на вашем Google Диске в разделе “Доступные мне” (Shared with me).

Открытие электронной таблицы и загрузка данных

Теперь пришло время открыть таблицу и загрузить в нее данные. Для этого используем метод .open и выбираем таблицу sheet1.

Затем считываем любой CSV-файл, имеющийся в Pandas. В данном случае будем использовать CSV-файл, который находится на Google Диске или в моем Github, хотя можно использовать любой CSV-файл.

Наконец, загрузим данные в таблицу с помощью метода .update.

# Откройте таблицу
sheet = client.open("NewDatabase").sheet1

# Прочитайте csv с помощью pandas
df = pd.read_csv('football_news')

# Экспортируйте df в таблицу
sheet.update([df.columns.values.tolist()] + df.values.tolist())

Вот и все! Теперь в таблице должны быть те же данные, что и в CSV-файле. Весь код, написанный в этом руководстве, можно найти на Github.

Бонус: открытие любого файла из Google Таблиц с помощью Python

Теперь пришло время узнать, как получить доступ к любому файлу из Google Таблиц (даже к тем, которые не были созданы с помощью вашего клиентского email-адреса).

Для этого откройте любой файл из Google Таблиц, перейдите в правый верхний угол и нажмите “Поделиться” (Share).

Изображение автора

Появится новое окно. Вставьте в него клиентский email-адрес, полученный ранее (он также находится в скачанном ранее JSON-файле), и нажмите “Отправить” (Send).

Изображение автора

Теперь, имея разрешение на доступ, вы можете открыть любой файл из Google Таблиц, используя написанный ранее код.

Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи Frank Andrade: Turn Google Sheets into Your Own Database with Python

Предыдущая статьяФитнес-функции и их роль в эволюции архитектуры
Следующая статьяПереключатель темного режима в веб-приложении