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
А чтобы записать 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
Нагуглить методы не сложно, по поему опыту именно настройка конфига вызывает больше всего вопросов.
И так авторизовываемся под свом гугл аккаунтом (или сервисной учеткой) и переходим по ссылке.
Там находим Create credentials → Servise account.
Тут мы создаем сервисный аккаунт.
Далее заполняем все нужные поля и кликаем Done.
В результате мы получили сервисный акк.
Далее кликаем и проваливаемся в него (стрелка на скрине ниже):
Попадаем на эту страницу:
И выбираем Keys → Create new key.
Выбираем JSON → create.
После прожатия create у вас автоматически скачаеться json файл с кредами.
Далее можете копировать путь в нему и вставить в код в самом начале:
secret = get_config(
conf_dir='<Путь к файлу с кредами>',
file_name='<Файл с кредами>'
)
Осталось нажать 2 кнопки, снова переходим по ссылке.
Там переходим в Enabled API & servises:
И находим Google Sheets API:
Через поиск находим Google Sheets API:
И кликаем кнопку Enable:
Далее переходим по ссылке и кликаем Enable the API:
Осталось последнее, дать сервисной учетке которая будет читать/писать данные доступ в конктентый гугл док.
По той же ссылке узнаем имя сервисной учетки:
И даем ей доступ в самом гуг доке:
Должны получить успех при попытке на чтения и записи!