Zugriff auf Google-Tabellendaten mit Python

Blog

Wenn Sie eine einfache interne App erstellen und wahrscheinlich denken, dass ich jetzt eine Datenbank brauche! Nun, nicht so schnell.



So stellen Sie das AOL-Passwort wieder her

Da Sie alle mit dem Importieren, Exportieren und Bearbeiten von kommagetrennten Dateien (CSV) mit Python vertraut sind, zeige ich Ihnen in diesem Artikel die Schritt-für-Schritt-Anleitung für den Zugriff auf Google Spreadsheets in der Cloud mit Python.



Gehen Sie als erstes zum Google API Manager, indem Sie einfach googeln und zu . gehen https://console.developers.google.com/



https://console.developers.google.com/

Zum Auftakt erstellen Sie zunächst ein neues Projekt.

Abbildung 1.0: Erstellen eines neuen Projekts

Ich nenne mein Projekt 'Telemedizin', da wir mit einer Tabelle arbeiten werden, die alle Tweets zu Telemedizin-Hashtags enthält, die ich zuvor extrahiert habe ( Klicken Sie hier, um zu sehen, wie ich Tweets mit Hashtags extrahiert habe ) . Definieren Sie einen geeigneten Projektnamen entsprechend Ihrem Datensatz in der Cloud und klicken Sie dann auf SCHAFFEN das Projekt zu initiieren. (Sie müssen sich keine Sorgen machen Standort* unter dem Projektnamen)

Abbildung 1.0: Definieren Sie einen passenden Projektnamen entsprechend Ihrem Datensatz

OKAY. Der erste Teil ist fertig. Gehen Sie nun zur API-Bibliothek und suchen Sie nach Google Drive.

Abbildung 2.0: Suche nach Google Drive in der API-Bibliothek

Fügen Sie dann die Google Drive API zu unserem Projekt hinzu, die es uns ermöglicht, auf die Tabellenkalkulation in Google Sheets für unser Konto zuzugreifen.

Abbildung 2.1: Klicken Sie auf Aktivieren

Sobald dies hinzugefügt wurde, müssen wir einige Anmeldeinformationen für den Zugriff auf die API erstellen. Klicken Sie daher auf dem nächsten Bildschirm, den Sie nach der Aktivierung der API sehen, auf Anmeldeinformationen hinzufügen.

Abbildung 3.0: Klicken Sie auf Credentials erstellen, um die Credentials für den Zugriff auf die API zu initialisieren

Da wir über einen Webserver auf die API zugreifen, fügen wir die Webserver Option auf dieser Seite und geben Sie Zugriff auf Anwendungsdaten und sagen Sie ihnen, dass Sie Ihre Anwendung auch nicht ausführen GCE oder GAE durch Auswahl der Option „Nein, ich benutze sie nicht“ klicken Sie dann auf die Schaltfläche unten.

So erstellen Sie eine Minikarte in Einheit

Abbildung 3.1: Anmeldeinformationen erstellen

Als Nächstes erstellen wir ein Dienstkonto namens Employees und weisen ihm die Rolle zu Projekt Editor die es ihm ermöglicht, auf alle Daten innerhalb der API zuzugreifen und sie zu bearbeiten. Klicken fortsetzen generiert eine JSON-Datei, die ich umbenennen und dem Projekt hinzufügen werde als Telemedicine_secret.json.

Abbildung 3.2: Anmeldedaten für Dienstkonten erstellen

Öffnen Sie dann die JSON-Datei in einem Texteditor (ich bevorzuge Atom) :)

In der Datei finden Sie eine E-Mail-Adresseigenschaft namens client_email. Wenn wir diese kopieren und in unsere Tabelle in der Cloud übernehmen, können wir diese bestimmte Tabelle mit der von uns bereitgestellten E-Mail-Adresse teilen, um uns über die API darauf zugreifen zu können .

Abbildung 4.0: Kopieren Sie die E-Mail-Adresseigenschaft client_email

Abbildung 4.1: Fügen Sie die kopierte E-Mail als gemeinsame E-Mail-Adresse ein

Tabellendaten mit Python lesen

Gehen wir in das Terminal, um es zu installieren gspread und oauth2client Pakete und warten Sie, bis alle Komponenten installiert sind.

$ pip install gspread oauth2client 

Dann erstelle ich in meinem Lieblingseditor ATOM eine neue Python-Datei namens Spreadsheet.py und schreibe den folgenden Code in Gspread- und ServiceAccountCredentials importieren von oauth2client .

import gspread from oauth2client.service_account import ServiceAccountCredentials 
  1. Dann müssen wir den Bereich definieren und Anmeldeinformationen mithilfe dieses Bereichs und des Inhalts der Datei employee_secret.json erstellen.
  2. Dann erstelle ich einen gspread-Client, der ihn mit diesen Anmeldeinformationen autorisiert.
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive'] creds = ServiceAccountCredentials.from_json_keyfile_name('employees_secret.json', scope) client = gspread.authorize(creds) 


3. JETZT können wir auf unsere Google-Tabellen zugreifen, damit wir a anrufen client.open und übergeben Sie ihm den Tabellennamen und erhalten Sie Zugriff auf Sheet1

sheet = client.open('telemedicine_data').sheet1 

4. Jetzt können wir unsere Mitarbeiter mit allen Datensätzen auf diesem Blatt gleichsetzen und sie am Terminal ausdrucken.

telemedicine = sheet.get_all_records() print(telemedicine) 

Lassen Sie uns das Terminal versuchen, unser Programm auszuführen, und wir erhalten eine herrliche Liste von perfekt formatierten Inhalten wie im Bild unten (siehe den hervorgehobenen Text und Sie finden alle Spalten in unserem Datensatz).

python spreadsheet.py 

Abbildung 5.0: Ergebnisse als Liste anzeigen

Whoa! Es war nicht das, was Sie erwartet haben, oder? Nun, glauben Sie mir, ich habe die perfekte Lösung dafür!

Wir können das Ergebnis bereinigen, indem wir pprint -Modul, mit dem wir einen hübschen Drucker erstellen können, mit dem wir das Ergebnis anzeigen können, und es ist eine viel schönere Möglichkeit, die Ausgabe anzuzeigen.

import gspread from oauth2client.service_account import ServiceAccountCredentials import pprint scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive'] creds = ServiceAccountCredentials.from_json_keyfile_name('employees_secret.json', scope) client = gspread.authorize(creds) sheet = client.open('employee_reviews').sheet1 pp = pprint.PrettyPrinter() employees = sheet.get_all_records() pp.pprint(employees) 



orbi bekommt keine Internetverbindung

Abbildung 5.1: Formatierte Ergebnisse mit pprint

Wenn Sie die vollständige Dokumentation von gspread durchgehen möchten Klicke hier und in der Zwischenzeit folge ich dir mit diesen coolen Tricks.

Daten filtern

#to get all the values inside the file sheet.get_all_values() #to get exact row values in a second row (Since 1st row is the header) sheet.row_values(2) #to get all the column values in the column 'place' sheet.col_values(16) #to extract a particular cell value sheet.cell(1, 1).value 



Abbildung 6.0: sheet.col_values(16), um alle Zeilenwerte in Spalte 16 zu erhalten, die „place“ ist


Abbildung 6.1: sheet.row_values(2) um alle Werte der ersten Zeile zu erhalten


OK! Gelesen ist alles. JAWOHL! Aber können wir mehr tun? Oh ja!



Einfügen / Aktualisieren und Löschen aus der Tabelle

Außerdem können Sie eine zufällige Zeile eingeben und jeder Zelle Werte zuweisen, indem Sie jedes Wort durch doppelte Anführungszeichen trennen.

row = ['I'm','inserting','a','new','row','into','a,','Spreadsheet','using','Python'] index = 3 sheet.insert_row(row, index) 

lade aol-desktop 9.7 . herunter

Abbildung 6.2: Tabellenkalkulation nach dem Einfügen unserer neuen Zeile

Darüber hinaus ist es auch möglich, Daten innerhalb einer bestimmten Zelle zu ändern. Sehen Sie sich an, wie es gemacht wird, ich ändere den Namen der Kopfzeilenspalte ‚id‘ in ‚telemedicine_id‘:

sheet.update_cell(1, 1, 'telemedicine_id') 

Abbildung 6.3: Nach dem Aktualisieren des Header-Namens, der cell(1,1) ist


Zum Abschluss dieses Artikels werde ich abschließend beweisen, dass es nicht unbedingt erforderlich ist, Datenbanken für einfache interne Apps zu erstellen. Tabellenkalkulationen könnten Ihre beste Antwort sein!

Sie können auf den vollständigen Code zugreifen Hier .

Foto von Paul Gilmore An Unsplash


Dankeschön!

Wenn dir dieser Beitrag gefallen hat, teile ihn mit all deinen Programmierfreunden!

Folge mir auf Facebook | Twitter


Erfahren Sie mehr

Schließe Python Bootcamp ab: Gehe von Null zum Helden in Python 3

Machine Learning A-Z™: Python & R in Data Science zum Anfassen

Visual Studio-Format html

Python und Django Full Stack Web Developer Bootcamp

Komplette Python-Meisterklasse

Die Python-Bibel™ | Alles, was Sie zum Programmieren in Python benötigen

Python-Tutorial für Anfänger (2019) - Lernen Sie Python für maschinelles Lernen und Webentwicklung

MongoDB mit Python Crashkurs - Tutorial für Anfänger

Python lernen: Von Null zum Helden

Ein vollständiger Walk-Through für das Machine Learning-Projekt in Python

MySQL-Datenbanken mit Python-Tutorial

Ein A-Z mit nützlichen Python-Tricks

#python #excel #excel-vba

zudatascience.com

Zugriff auf Google-Tabellendaten mit Python

Wenn Sie eine einfache interne App erstellen und wahrscheinlich denken, dass ich jetzt eine Datenbank brauche! Nun, nicht so schnell.