Программирование

Как читать и писать в Google Sheets с Python

Как читать и писать в Google Sheets с Python

Python — отличный язык программирования. Синтаксис может показаться странным и необычным, однако его легко изучить и использовать. Он поддерживает Minecraft Pi Edition , а также множество веб-сайтов и академических исследовательских проектов.

Разблокируйте шпаргалку «Основные сочетания клавиш Google Drive» прямо сейчас!

Это подпишет вас на нашу рассылку

Введите адрес электронной почты

В этой статье я покажу вам, как читать и писать в Google Sheets с использованием Python. Если вы только начинаете свое путешествие по Python, эти 5 лучших сайтов для изучения Python являются хорошей отправной точкой.

Настройка Google

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

Сначала создайте себе новый лист. Вы можете пропустить этот шаг, если он уже настроен. Я использую список раллийных автомобилей для этого примера:

Google листов раллийных автомобилей

Теперь вам нужно настроить параметры обмена. Вам нужно будет создать подписанные учетные данные , что звучит сложнее, чем есть. Перейдите к консоли разработчиков Google и создайте новый проект (или используйте существующий):

консоль разработчиков Google

Дайте вашему проекту подходящее имя и нажмите « Создать» :

Название проекта консоли разработчиков

Под API Служб Google выберите Drive API :

Google Apps API

Выберите Включить :

google_api_enable

Теперь выберите Учетные данные в левом меню:

учетные данные Google API

Нажмите маленькую стрелку на кнопке Создать учетные данные :

google api создать учетные данные

Теперь выберите ключ учетной записи службы :

учетная запись службы Google API

Выберите учетную запись службы App Engine по умолчанию в разделе « Сервисная учетная запись» и JSON в качестве формата:

создание учетной записи службы Google API

Нажмите кнопку «Создать», и вы должны загрузить файл .json . Переместите это в каталог вашего проекта и переименуйте в creds.json . Наконец, откройте файл и найдите client_email . Это должно быть название вашего проекта на appspot.gserviceaccount.com . Поделитесь своим Google Sheet с этим адресом электронной почты ( вверху справа > Поделиться > Введите адрес электронной почты ).

Вот и все, что касается Google Drive.

Настройка Python

Существует две основные версии Python: 2.7 и 3.x. Я буду использовать 2.7, но это не имеет значения, что вы используете. Вики Python устраняет различия, если вы заинтересованы. Вы можете установить виртуальную среду . Это выходит за рамки этой статьи, но хорошая практика.

Если вы используете Microsoft Windows, вам может потребоваться загрузить и установить Python . Mac OS поставляется с уже установленным Python. Поскольку я использую Mac, этот проект будет создан как таковой. Вы должны быть в состоянии достаточно хорошо следовать за машиной Windows или Linux. Обязательно прочитайте наше руководство о том, стоит ли вам переключаться.

Сначала откройте новый терминал. Вам нужно будет использовать pip для установки некоторых пакетов Python. Это рекомендуемый инструмент, который упрощает управление пакетами. Он поставляется с Python.

Вам необходимо установить клиент oauth2 . Oauth — это структура веб-авторизации. Я не буду обсуждать детали этого, но необходимо, чтобы все работало правильно и безопасно. Его легко установить с помощью pip:

pip install oauth2client 

Вам также может понадобиться установить PyOpenSSL, в зависимости от ваших настроек:

 pip install PyOpenSSL 

Теперь вам нужно установить Gspread от Антона Бурнашева на GitHub. Это отличная библиотека, написанная для облегчения доступа к Google Sheets на Python. Опять же, это легко установить с помощью pip:

 pip install gspread 

Теперь откройте ваш любимый текстовый редактор (я использую Sublime Text 3 ). Создайте новый файл Python и сохраните его в каталоге проекта как google_io.py . Вот тестовый код:

 print 'Hello, World!' 

Вернитесь в свой Терминал и перейдите в каталог вашего проекта. Вы можете сделать это с помощью команды cd . Вы можете использовать ls для вывода списка файлов и pwd для отображения вашего рабочего каталога.

Оказавшись в каталоге вашего проекта, вы можете выполнить скрипт Python следующим образом:

 python google_io.py 

Теперь вы должны увидеть Hello, World! в вашей командной строке:

Питон Привет, мир

Теперь, когда Python работает правильно, давайте продолжим и настроим библиотеки. Удалить привет код мира. Теперь импортируйте Gspread и снова выполните код:

 import gspread 

Если все работает правильно, ничего не произойдет. Если вы получаете сообщение об ошибке, возможно, говорят, что нет модуля с именем X, где X — это имя введенного вами модуля (Gspread), и двойная проверка pip установила модуль правильно, и вы не допустили опечатку.

Вот код для начала:

 import json import gspread from oauth2client.client import SignedJwtAssertionCredentials json_key = json.load(open('creds.json')) # json credentials you downloaded earlier scope = ['https://spreadsheets.google.com/feeds'] credentials = SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'].encode(), scope) # get email and key from creds file = gspread.authorize(credentials) # authenticate with Google sheet = file.open("MUO_Python_Sheet").sheet1 # open sheet 

Это просто извлекает ваши данные из файла .json , а затем использует их для аутентификации в Google. Затем он открывает лист с именем MUO_Python_Sheet . Возможно, вам придется изменить это на имя вашего листа (при условии, что вы поделились им правильно). Python чувствителен к регистру, поэтому убедитесь, что вы правильно ввели этот код.

чтение

Теперь, когда все настроено, читать или записывать данные тривиально. Вот как вы выбираете диапазон ячеек (в данном случае, все ячейки автомобиля):

 all_cells = sheet.range('A1:C6') print all_cells 

Вот как это выглядит:

google_sheets_python_read

Не очень приятно это? Python выгрузил содержимое объекта, не обращая внимания на форматирование. Поскольку он хранится в переменной all_cells , к нему можно получить доступ, как и к любому другому объекту Python. Вот как вы печатаете все значения ячеек в более хорошем формате:

 for cell in all_cells: print cell.value 

И это выглядит так:

Python Google листы все значения

Доступ к ячейкам возможен индивидуально (хотя это происходит медленно, если вы делаете это много раз):

 A1 = sheet.acell('A2').value # this cell contains "Ford" 

Или вы можете использовать координаты ячейки:

 coord = sheet.cell(3, 0).value 

Легко получить все значения для строки:

 row = sheet.row_values(1) # first row 

Или вы можете получить целый столбец. Это получает строку Model :

 col = sheet.col_values(2) # models 

Имейте в виду, что эти два метода не знают, сколько данных у вас есть. Если у вас всего три строки, будет возвращено несколько дополнительных пустых ячеек. Почти всегда лучше получить доступ к заранее определенному блоку ячеек.

Письмо

Это так же легко записать обратно на лист, и вы можете использовать имена ячеек или координаты, как при чтении:

 sheet.update_acell('C2', 'Blue') sheet.update_cell(2, 3, 'Blue') 

На странице проекта на GitHub есть еще много примеров.

Если вы пишете на важный лист, вы можете рассмотреть вопрос о безопасности . Сохраните значение в определенной ячейке (я использую «Не удалять это»), а затем сначала прочитайте эту ячейку. Если содержимое изменилось, то столбцы были добавлены или удалены на вашем листе, поэтому не продолжайте писать! Вот как это может быть достигнуто:

 if sheet.acell('B3') != 'SAFETY': # something has changed in the sheet, DO NOT PROCEED raise Exception("Oh My, I'm not ready for this.") else: # continue with your writing sheet.update_acell('C2','Blue') 

Это хорошая практика. Это гарантирует, что ваш скрипт не может случайно записать в неправильный столбец. Это не замена для правильного резервного копирования (у вас есть резервные копии, верно?).

Теперь, когда вы знаете основы, идите и сделайте что-нибудь классное! Узнайте, как использовать cron для планирования задач в Linux (или ознакомьтесь с альтернативой Windows ). Может быть, вы могли бы привести в действие фоторамку или сделать офисную приборную панель — вот что я сделал!

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

Похожие посты
Программирование

Что такое канал RSS? (И где его взять)

Программирование

7 причин, почему изображения не загружаются на ваш сайт

Программирование

Запустите агент SQL Server: настройте SQL Server 2012

Программирование

15 лучших бесплатных обоев дня Святого Патрика