Создавайте, пишите, обновляйте, обновляйте разрешения, перемещайте в папку с Google Sheets API и Google Drive API (и чашку чая).

Google Suite, пожалуй, самый используемый инструмент в компаниях. Интересно, почему было так сложно манипулировать API с помощью Python. Документация Google полная, но отсутствуют наглядные примеры. Даже Python Quickstart сложен для того, кто хочет только создать электронную таблицу ...

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

Для этого урока я использовал Google Colab, вы можете прямо сейчас создать новый блокнот и следовать за ним.

Создайте сервисный аккаунт

Чтобы использовать Google Sheet & Drive API, нам необходимо создать учетную запись службы.

Я предполагаю, что он у вас уже есть, или вы знаете, как это сделать, я буду краток:

Перейдите сюда, нажмите Создать учетную запись службы, дайте своей учетной записи имя, нажмите Создать, выберите Роль в качестве редактора проекта (в Project ›Editor). Щелкните Готово.

После создания учетной записи службы найдите ее в списке, нажмите на три вертикальные точки справа, нажмите «Управление ключами», «Добавить ключ», «Создать новый ключ», «JSON», «Создать». Загрузите ключ, готово.

Это самый короткий раздел «Создание учетной записи службы», который я когда-либо видел.

Если оно было слишком коротким, проверьте эту статью.

Установка и импорт пакетов

Чтобы использовать Google Sheet API, нам нужны библиотека аутентификации Google и клиент Python Google API. Выполните следующие команды, чтобы установить необходимые пакеты.

!pip install google-auth-httplib2
!pip install google-api-python-client

И импортируйте следующие пакеты

import httplib2
import os
from apiclient import discovery
from google.oauth2 import service_account

Аутентификация в Google Sheet API и Google Drive API

Мы создадим, напишем, обновим электронную таблицу, обновим разрешения и переместим в папку с помощью Google Sheets API и Google Drive API. Поэтому нам нужно использовать Google Таблицы и клиент Python Google Диска.

Чтобы импортировать файл JSON с ключом сервисной учетной записи, укажите путь к нему.

Или, если вы также используете Google Colab, щелкните значок папки слева и нажмите кнопку с надписью Загрузить в хранилище сеанса (с массивом).

Создать папку на диске

В представлении Google Диска все представляет собой файл.

Папка - это своего рода файл (с type = «application / vnd.google-apps.folder»). У каждого файла есть родительский файл (папка).

Не запутайтесь, если вы прочитаете file_id для папки :)

> folder_id
'1bLz5euWPVL-FoyQYb0DT639h9HBMyoek'

Обновить права доступа к папке

Когда мы создали его, мы не можем получить доступ к папке с нашей учетной записью. Только сервисный аккаунт может. Мы должны дать себе разрешение:

Если вы использовали свой личный адрес электронной почты, вы должны получить такое письмо:

Теперь у нас есть доступ к пустой папке, давайте создадим таблицу!

Создать электронную таблицу

> speadsheet_id
'1yoVHs7XILazcZDkjDNnGdGwAsa1DUDH1vyz8YJ-XwDo'

Обновить электронную таблицу

Свежая таблица пуста, мы вставим некоторые данные: три столбца и две строки.

Если количество строк является переменным, вы можете использовать это значение в range_name:

range_name = "A1:C{}".format(len(rows))

Чтение значений из электронной таблицы

[['Medium Channel', 'Views', 'Likes'], ['Beranger', '10983908', '13084']]

Обновить разрешения таблицы

Опять же, созданная нами электронная таблица может быть доступна только для учетной записи службы, мы должны обновить разрешения:

И снова мы получаем это письмо:

Переместить в папку

Предыдущий метод хорош, если у вас есть только несколько таблиц, к которым нужно предоставить доступ.

Но если вы планируете создать огромное количество таблиц, вы получите огромное количество электронных писем… Вам следует вместо использовать этот метод:

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

Помните папку, которую мы создали в начале? Мы просто используем его folder_id, и разрешения для электронной таблицы будут обновлены автоматически.

тадаа

Последний ценный совет об огромных числах

Совет на 2 часа экономии

Если вы хотите манипулировать огромными числами:

Преобразование таблицы Google в .xlsx при загрузке приведет к форматированию длинных чисел в экспоненциальном представлении.

Например, IMEI 310330432427115 будет преобразован в 3.10330432e + 14.

Потому что по умолчанию Google Sheet будет рассматривать IMEI как числа.

Ценный прием заключается в следующем: при вставке чисел, которые должны быть отформатированы как строка, добавьте в начало кавычки:

Пожалуйста!

Спасибо

Прощай, бегемоты!