Как превратить Google Таблицы в базу данных с помощью Python
Знаете ли вы, что Google Таблицы можно использовать в качестве упрощенной базы данных?
Google Таблицы — это облачное приложение для работы с электронными таблицами, которое может хранить данные в структурированном виде, как и большинство систем управления базами данных. Вы также можете редактировать и удалять данные парой щелчков мыши, а также получать доступ к ним в режиме онлайн.
https://t.me/python_job_interview – python собеседование
Хотя Google Таблицы имеют ограничения, например количество предлагаемых ячеек (до 10 миллионов) и вызовов API в минуту, можно рассматривать этот сервис как вариант бесплатной базы данных.
В данном руководстве будет рассказано и показано, как использовать Google Таблицы с помощью Python. Вы узнаете, как создать электронную таблицу и сохранить в ней данные с помощью Python, чтобы превратить Google Таблицы в собственную базу данных.
Оглавление
1. Подключение API и загрузка учетных данных
2. Превращение Google Таблиц в базу данных с помощью Python
- Подключение к Google Таблицам
- Создание пустой электронной таблицы
- Совместное использование электронной таблицы
- Открытие электронной таблицы и загрузка данных
3. Бонус: открытие любого файла из Google Таблиц с помощью Python
Это руководство также можно посмотреть в видеоформате на английском языке.
1. Подключение API Google Диска и Google Таблиц с загрузкой учетных данных
Чтобы подключить Google Таблицы к Python, нужно загрузить учетные данные в файл JSON. Для этого создадим новый проект.
Создание нового проекта
Чтобы создать новый проект, перейдите на этот сайт и выполните следующие шаги (нужно войти в свой Google-аккаунт).
- Выберите проект.
- Кликните на “Новый проект” (New Project).
- Когда загрузится новая страница, напишите название проекта и кликните “Создать” (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 Таблиц, используя написанный ранее код.