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

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


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


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

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

Оглавление

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 Таблиц, используя написанный ранее код.


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


Report Page