GSpread adalah paket Python yang membuatnya cepat dan mudah untuk membaca dan menulis data dari spreadsheet Google Sheets yang disimpan di Google Drive Anda ke dalam Python. Dengan sedikit kode tambahan, Anda juga dapat memuat data Google Sheets langsung ke kerangka data Pandas
Setelah data GSheets Anda berada dalam kerangka data Pandas, Anda dapat memanipulasi sesuai keinginan, menghubungkannya ke sumber data lain, atau mendorongnya ke sistem lain, seperti database, atau mendorongnya kembali ke Google Sheets sehingga Anda dapat mengaksesnya melalui Google Data . Berikut panduan singkat tentang cara melakukannya
Instal paket
Pertama, buka notebook Jupyter dan instal paket GSpread Python dengan memasukkan !pip3 install gspread
ke dalam sel lalu jalankan dengan menekan shift dan enter. Kemudian impor paket gspread
dan pandas
. . pip3 instal gspread
import gspread as gs
import pandas as pd
Selanjutnya, gunakan fungsi service_account[]
_ dari GSpread untuk mengautentikasi akun Google Spreadsheet Anda menggunakan file kunci JSON rahasia klien untuk akun layanan Anda. Anda bisa mendapatkan salah satunya dari Google API Console
gc = gs.service_account[filename='service_account.json']
_Buka Lembar Google dengan Python
Sekarang kami memiliki koneksi ke Google Sheets yang disimpan di objek
gc = gs.service_account[filename='service_account.json']
0, kami dapat menambahkan fungsi gc = gs.service_account[filename='service_account.json']
1 ke ini dan meneruskan URL spreadsheet Google Sheets yang ingin kami muat di Pandas. Ini kemudian akan menggunakan koneksi yang diautentikasi untuk mengambil data dan menariknya ke notebook Jupyter Anda sebagai objek spreadsheet Gspreadsh = gc.open_by_url['//docs.google.com/spreadsheets/d/1vxyaK4dDdXzDJ5Axakrvik4CUxzGyHvgmmBQJ3Qo7dE/edit?usp=sharing']
_Pilih lembar kerja tertentu
Spreadsheet di Google Sheets dan Excel dibagi menjadi beberapa lembar kerja. Apakah spreadsheet Anda berisi satu lembar kerja atau beberapa lembar kerja bernama, Anda harus memuat yang spesifik. Untuk melakukan ini, kami menambahkan fungsi
gc = gs.service_account[filename='service_account.json']
2 ke objek spreadsheet gc = gs.service_account[filename='service_account.json']
3 dan memberinya nama seetws = sh.worksheet['Courses']
Untuk mengakses konten dari lembar kerja, kami menambahkan fungsi
gc = gs.service_account[filename='service_account.json']
4 ke objek yang berisi lembar kerja. Ini mengembalikan kamus Python yang berisi semua data di lembar kerja. ws. get_all_records[] Karena kami ingin menampilkan konten Lembar Google kami dalam kerangka data Pandas, kami perlu membuat kerangka data dari kamus itu. Ini sebenarnya sangat mudah. Satu baris kode akan melakukannya untuk kitadf = pd.DataFrame[ws.get_all_records[]]
df.head[]
_course_titlecourse_durationcourse_typecourse_categories0Jaringan Syaraf Berulang untuk Pemodelan Bahasa. 4 jamKursusPembelajaran Mesin1Analisis Keranjang Pasar dengan Python4 jamKursusPembelajaran Mesin2Pembelajaran Mesin untuk Semua Orang4 jamKursusPembelajaran Mesin3Pembelajaran Mesin untuk Bisnis4 jamKursusPembelajaran Mesin4Berlatih Pertanyaan Wawancara Pembelajaran Mesin. 4 jamKursusPembelajaran Mesin
Quickstart Google Workspace menggunakan library klien API untuk menangani beberapa detail alur autentikasi dan otorisasi. Kami menyarankan Anda menggunakan pustaka klien untuk aplikasi Anda sendiri. Sebelum Anda dapat menjalankan aplikasi contoh, setiap quickstart mengharuskan Anda mengaktifkan autentikasi dan otorisasi. Jika Anda tidak terbiasa dengan autentikasi dan otorisasi untuk Google Workspace API, baca Ringkasan autentikasi dan otorisasi
Buat aplikasi baris perintah Python yang membuat permintaan ke Google Sheets API
Tujuan
- Siapkan lingkungan Anda
- Instal pustaka klien
- Siapkan sampel
- Jalankan sampel
Prasyarat
Untuk menjalankan quickstart ini, Anda memerlukan prasyarat berikut
- Piton 3. 10. 7 atau lebih
- Alat manajemen paket pip
- Proyek Google Cloud
- Akun Google
Siapkan lingkungan Anda
Untuk menyelesaikan quickstart ini, siapkan lingkungan Anda
Aktifkan API
Sebelum menggunakan Google API, Anda harus mengaktifkannya di project Google Cloud. Anda dapat mengaktifkan satu atau beberapa API dalam satu project Google CloudDi Google Cloud Console, aktifkan Google Sheets API
Aktifkan API
Otorisasi kredensial untuk aplikasi desktop
Untuk mengautentikasi sebagai pengguna akhir dan mengakses data pengguna di aplikasi, Anda perlu membuat satu atau beberapa OAuth 2. 0 ID Klien. ID klien digunakan untuk mengidentifikasi satu aplikasi ke server OAuth Google. Jika aplikasi Anda berjalan di beberapa platform, Anda harus membuat ID klien terpisah untuk setiap platform- Di Google Cloud Console, buka Menu menu > API & Layanan > Credentials.
Buka Kredensial
- Klik Buat Kredensial > ID klien OAuth.
- Klik Jenis aplikasi > Aplikasi desktop.
- Di bidang Nama, ketikkan nama untuk kredensial. Nama ini hanya ditampilkan di konsol Google Cloud
- Klik Buat. Layar yang dibuat klien OAuth muncul, menunjukkan ID Klien dan Rahasia klien baru Anda
- Klik Oke. Kredensial yang baru dibuat muncul di bawah OAuth 2. 0 ID Klien
- Simpan file JSON yang diunduh sebagai
credentials.json
, dan pindahkan file ke direktori kerja Anda
Instal pustaka klien Google
Instal pustaka klien Google untuk Python
pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
Konfigurasi sampel
- Di direktori kerja Anda, buat file bernama
quickstart.py
Sertakan kode berikut di
quickstart.py
sheets/quickstart/quickstart. py
Lihat di GitHub
from __future__ import print_function import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError # If modifying these scopes, delete the file token.json. SCOPES = ['//www.googleapis.com/auth/spreadsheets.readonly'] # The ID and range of a sample spreadsheet. SAMPLE_SPREADSHEET_ID = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms' SAMPLE_RANGE_NAME = 'Class Data!A2:E' def main[]: """Shows basic usage of the Sheets API. Prints values from a sample spreadsheet. """ creds = None # The file token.json stores the user's access and refresh tokens, and is # created automatically when the authorization flow completes for the first # time. if os.path.exists['token.json']: creds = Credentials.from_authorized_user_file['token.json', SCOPES] # If there are no [valid] credentials available, let the user log in. if not creds or not creds.valid: if creds and creds.expired and creds.refresh_token: creds.refresh[Request[]] else: flow = InstalledAppFlow.from_client_secrets_file[ 'credentials.json', SCOPES] creds = flow.run_local_server[port=0] # Save the credentials for the next run with open['token.json', 'w'] as token: token.write[creds.to_json[]] try: service = build['sheets', 'v4', credentials=creds] # Call the Sheets API sheet = service.spreadsheets[] result = sheet.values[].get[spreadsheetId=SAMPLE_SPREADSHEET_ID, range=SAMPLE_RANGE_NAME].execute[] values = result.get['values', []] if not values: print['No data found.'] return print['Name, Major:'] for row in values: # Print columns A and E, which correspond to indices 0 and 4. print['%s, %s' % [row[0], row[4]]] except HttpError as err: print[err] if __name__ == '__main__': main[]
Jalankan sampel
Di direktori kerja Anda, buat dan jalankan sampel
python3 quickstart.py
Pertama kali Anda menjalankan sampel, Anda diminta untuk mengotorisasi akses
- Jika Anda belum masuk ke Akun Google, Anda akan diminta untuk masuk. Jika Anda masuk ke beberapa akun, pilih satu akun yang akan digunakan untuk otorisasi
- Klik Terima
Informasi otorisasi disimpan dalam sistem file, jadi saat berikutnya Anda menjalankan kode sampel, Anda tidak dimintai otorisasi
Anda telah berhasil membuat aplikasi Python pertama yang membuat permintaan ke Google Sheets API