Jadi, jika Anda membuat aplikasi CRUD cepat untuk e. g. penggunaan internal, Google Documents sebagai backend (dikonsumsi melalui JSON) *sangat* kuat
- Patrick McKenzie (@patio11) 5 Juli 2014
Dalam tutorial ini, kita akan menggunakan paket Python gspread Anton Burnashev yang luar biasa untuk membaca, menulis, dan menghapus data dari Google Spreadsheet dengan .
API Google Drive dan Akun Layanan
Dengan risiko menjadi Captain Obvious, Anda memerlukan spreadsheet jika ingin mengikuti postingan ini. Jika Anda tidak memilikinya yang penuh dengan data menarik, bolehkah saya menyarankan Anda membuat salinan ini? . Ian Webster menggunakan data ini bersama dengan Twilio untuk memudahkan warga (Side note: Ian Webster uses this data in conjunction with Twilio to make it easy for citizens to memanggil kongres).
Untuk mengakses spreadsheet secara terprogram, Anda harus membuat akun layanan dan kredensial OAuth2 dari Google API Console. Jika Anda pernah mengalami trauma dengan pengembangan OAuth2 sebelumnya, jangan khawatir; . way easier to use.
Ikuti langkah-langkah dan GIF di bawah ini. Anda akan masuk dan keluar dari konsol dalam 60 detik (seperti Nic Cage di film Nic Cage favorit Anda)
- Buka Konsol Google API
- Buat proyek baru
- Klik Aktifkan API. Cari dan aktifkan Google Drive API
- Buat kredensial untuk Server Web untuk mengakses Data Aplikasi
- Beri nama akun layanan dan berikan Peran Proyek Editor
- Unduh file JSON
- Salin file JSON ke direktori kode Anda dan ganti namanya menjadi client_secret. json
Ada satu langkah terakhir yang diperlukan untuk mengotorisasi aplikasi Anda, dan mudah untuk dilewatkan
Temukan client_email di dalam client_secret. json. Kembali ke spreadsheet Anda, klik tombol Bagikan di kanan atas, dan rekatkan email klien ke bidang Orang untuk memberinya hak edit. Tekan Kirim.
Jika Anda melewati langkah ini, Anda akan mendapatkan gspread. pengecualian. SpreadsheetNotFound error saat Anda mencoba mengakses spreadsheet dari Python.
Kami sudah selesai dengan bagian yang membosankan. Sekarang ke kode
Baca Data dari Spreadsheet dengan Python
Dengan kredensial di tempat (Anda memang menyalinnya ke direktori kode Anda, bukan?) mengakses Google Spreadsheet dengan Python hanya memerlukan dua paket
- oauth2client – untuk mengotorisasi dengan Google Drive API menggunakan OAuth 2. 0
- gspread – untuk berinteraksi dengan Google Spreadsheets
Instal paket ini dengan
pip install gspread oauth2client
Kemudian tempelkan kode ini ke file baru bernama spreadsheet. py.
import gspread from oauth2client.service_account import ServiceAccountCredentials # use creds to create a client to interact with the Google Drive API scope = ['//spreadsheets.google.com/feeds'] creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', scope) client = gspread.authorize(creds) # Find a workbook by name and open the first sheet # Make sure you use the right name here. sheet = client.open("Copy of Legislators 2017").sheet1 # Extract and print all of the values list_of_hashes = sheet.get_all_records() print(list_of_hashes) _
Jalankan python spreadsheet. py dan kagumi data yang sangat baik dan terformat dengan baik.
Sisipkan, Perbarui, dan Hapus dari Spreadsheet dengan Python
Kami baru saja menggores permukaan gspreads mendokumentasikan dengan baik dan fungsionalitas komprehensif.
Misalnya, kami mengekstrak data ke dalam daftar hash, tetapi Anda bisa mendapatkan daftar daftar jika Anda mau
sheet.get_all_values()
Atau Anda bisa menarik data dari satu baris, kolom, atau sel
sheet.row_values(1) sheet.col_values(1) sheet.cell(1, 1).value
Anda dapat menulis ke spreadsheet dengan mengubah sel tertentu
sheet.update_cell(1, 1, "I just wrote to a spreadsheet using Python!") _
Atau Anda dapat memasukkan baris ke dalam spreadsheet
row = ["I'm","inserting","a","row","into","a,","Spreadsheet","with","Python"] index = 1 sheet.insert_row(row, index)
Anda juga dapat menghapus baris dari spreadsheet
sheet.delete_row(1) _
Dan cari tahu jumlah total baris
sheet.row_count
Periksa referensi API gspread untuk detail lengkap tentang fungsi ini beserta beberapa lusin lainnya.
Menggunakan Google Spreadsheets dengan Python membuka kemungkinan seperti membuat aplikasi Flask dengan spreadsheet sebagai lapisan persistensi, atau mengimpor data dari spreadsheet Google ke Jupyter Notebooks dan melakukan analisis di Pandas. Jika Anda ingin mulai bermain dengan Python dan Twilio, lihat panduan cepat Python kami
Jika Anda membuat sesuatu yang keren, beri tahu saya. Anda dapat menemukan saya di gb@twilio. com atau @greggyb. Dan jika posting ini bermanfaat, silakan bagikan dengan orang lain yang mungkin menggalinya.
Terima kasih banyak kepada Devin dan Sam untuk ulasannya, kepada Google untuk Spreadsheet, dan yang terpenting, kepada Anton untuk gspread