Spreadsheets ( гугл док ) для аналитика, чтение и запись данных. Настраиваем коннекшен

Кому будет интересна эта статья?

  • Вы работаете в Pandas/Python и вам необходимо получить таблицу из гугл дока.

  • Вы работаете в Pandas/Python и вам необходимо записать таблицу в гугл док.

  • Но коннекшена нету, тогда эта статья для вас!

И так сделать это на самом деле очень быстро, погнали!

Для работы мы будем использовать gspread_pandas, и по сути остается только настроить коннекшены, остальная часть работы сделана за нас. В нем куча методов которые покрывают большую часть задач.

import pandas as pd
from gspread_pandas import Spread
from gspread_pandas.conf import get_config, get_creds

secret = get_config(
    conf_dir='<Путь к файлу с кредами>',
    file_name='<Файл с кредами>'
)

creds = get_creds(config=secret)

И это все: D

Далее чтобы прочитать таблицу, нужно вызвать метод Spread передав ему ссылку на гугл док:

spreadsheet_link = 'https://docs.google.com/spreadsheets/d/1YULwugFvBatbIsDjLwMXbyeQobo2vf8LbM68dLu5R9w/edit?gid=0#gid=0'
spread = Spread(
    spreadsheet_link,
    creds=creds
)
df = spread.sheet_to_df()
df

518566aa40c47c17e6a56e4f65db4104.png

А чтобы записать DataFrame в гугл док вызвать метод spread.df_to_sheet, передав ему DF:

# Create test df
dict_test = {'col1': [1, 2], 'col2': [3, 4]}
df_test = pd.DataFrame(data=dict_test)
df_test

Но сам дьявол тут как раз таки в настройке конфига: D
Нагуглить методы не сложно, по поему опыту именно настройка конфига вызывает больше всего вопросов.

И так авторизовываемся под свом гугл аккаунтом (или сервисной учеткой) и переходим по ссылке.

010b51a877dae377624fd10d4a25ba35.png

Там находим Create credentials → Servise account.
Тут мы создаем сервисный аккаунт.
Далее заполняем все нужные поля и кликаем Done.
В результате мы получили сервисный акк.
Далее кликаем и проваливаемся в него (стрелка на скрине ниже):

6ec8339cd8d987009343498a98c888e8.png

Попадаем на эту страницу:
И выбираем Keys → Create new key.

7a92cfee64bb908128b02c3882a4d535.png7f2fe4edfd34fe6629c1f26855235ea3.png

Выбираем JSON → create.

После прожатия create у вас автоматически скачаеться json файл с кредами.
Далее можете копировать путь в нему и вставить в код в самом начале:

secret = get_config(
    conf_dir='<Путь к файлу с кредами>',
    file_name='<Файл с кредами>'
)

Осталось нажать 2 кнопки, снова переходим по ссылке.
Там переходим в Enabled API & servises:

0607540232a7004a7b848af990b92165.png

И находим Google Sheets API:
Через поиск находим Google Sheets API:

31307a40b3e0c028a30fd0e19dfd341a.png

И кликаем кнопку Enable:

5431a39c4c659af64eefe443e2a3dc45.png

Далее переходим по ссылке и кликаем Enable the API:

41f6d3980cd545999d721dbfde3ec59d.png

Осталось последнее, дать сервисной учетке которая будет читать/писать данные доступ в конктентый гугл док.

По той же ссылке узнаем имя сервисной учетки:

817d49c8ed25cd3377b3e91c3e639ff7.png

И даем ей доступ в самом гуг доке:

d56495215f7a056fa6b51cc18d637f46.png

Должны получить успех при попытке на чтения и записи!

© Habrahabr.ru