Slik leser og skriver du til Google Sheets med Python

Slik leser og skriver du til Google Sheets med Python / programmering

Python er et utmerket programmeringsspråk. Syntaxen kan virke rar og uvanlig, men det er lett å lære og bruke. Det krever Minecraft Pi Edition Lær python og elektronikk med Minecraft Pi Edition Lær python og elektronikk med Minecraft Pi Edition Har du alltid ønsket å lære å kode, men visste ikke hvor du skal starte? Lær hvordan du kontrollerer Minecraft på Raspberry Pi ved hjelp av Python og noen enkle elektronikk. Les mer, sammen med en rekke nettsteder og akademiske forskningsprosjekter.

I denne artikkelen vil jeg vise deg hvordan du leser og skriver til Google Sheets ved hjelp av Python. Sørg for at du leser grunnene til at Python programmering ikke er ubrukelig. 5 Grunner til at Python-programmering ikke er ubrukelig. 5 Grunner til at Python-programmering ikke er ubrukelig Python - Du enten elsker det eller hater det. Du kan til og med svinge fra den ene enden til den andre som en pendel. Uansett, Python er et språk som er vanskelig å være ambivalent om. Les mer og våre fem Google Sheets-innstillinger 5 Innstillinger for Google-arketer Vesentlig for samarbeid 5 Google-arkinnstillinger Viktig for samarbeid Google Arkiv har flere funksjoner for å støtte kollektiv datainngang og -behandling enn du kanskje tror. Vi presenterer funksjoner og funksjoner i Google Sheets som er viktige for gruppeprosjekter. Les mer som er avgjørende for samarbeid. De gir litt nyttig bakgrunnskunnskap. Hvis du bare begynner din Python-reise, disse 5 beste nettstedene for å lære Python De 5 beste nettstedene å lære Python programmering De 5 beste nettstedene å lære Python programmering Ønsker du å lære Python programmering? Her er de beste måtene å lære Python på nettet, hvorav mange er helt gratis. Les mer er et godt utgangspunkt.

Google-oppsett

Før du hopper inn i koden, er det noen grunnleggende oppsett som trengs på Google Sheets.

Først må du lage et nytt ark. Du kan hoppe over dette trinnet hvis du har en allerede satt opp. Jeg bruker en liste over rallybiler for dette eksempelet:

Nå må du konfigurere delingsalternativene dine. Du må generere Signert legitimasjon, noe som høres vanskeligere ut enn det er. Naviger til Google Developers Console og opprett et nytt prosjekt (eller bruk en eksisterende):

Gi prosjektet et passende navn, og klikk deretter skape:

Under Google Apps-APIer å velge Drive API:

Velge Aktiver:

Velg nå legitimasjon på venstre meny:

Klikk på den lille pilen på Opprett legitimasjon knapp:

Velg nå Tjenesten konto nøkkel:

Velge App Engine standard tjenestekonto under Tjenestekonto og JSON som formatet:

Klikk opprett, og du bør få en .json filnedlasting. Flytt dette inn i prosjektkatalogen din og gi den navnet på nytt creds.json. Til slutt åpner du filen og ser etter client_email. Dette bør være navnet på prosjektet ditt på appspot.gserviceaccount.com. Del Google-arket med denne e-postadressen (Øverst til høyre > Dele > Skriv inn e-post).

Det er det for Google Disk-siden.

Python Setup

Det er to hoved Python-versjoner: 2.7 og 3.x. Jeg bruker 2,7, men det spiller ingen rolle hva du bruker. Python wiki bryter ned forskjellene hvis du er interessert. Du vil kanskje installere et virtuelt miljø. Det er utenfor rammen av denne artikkelen, men god praksis.

Hvis du kjører Microsoft Windows, må du kanskje laste ned og installere Python. Mac OS leveres med Python allerede installert. Når jeg bruker en Mac, vil dette prosjektet bli opprettet som sådan. Du bør kunne følge med bra på en Windows- eller Linux-maskin. Pass på at du leser vår guide Hei Windows-bruker, bør du bytte til Linux eller Mac? Hei Windows-bruker, Skal du bytte til Linux eller Mac? Har du noen gang vurdert å bytte fra Windows til Linux eller Mac? Det raske svaret: Hvis du er på Windows, vær på Windows, og ikke bekymre deg for å oppgradere ennå. Her er hvorfor. Les mer om hvorvidt du skal bytte.

Først åpner du en ny terminal. Du må bruke pip for å installere noen Python-pakker. Dette er et anbefalingsverktøy som gjør det veldig enkelt å administrere pakker. Den kommer med Python.

Du må installere en oauth2client. Oauth er et rammeverk for autorisasjon av nettverket. Jeg diskuterer ikke detaljene i det, men det er nødvendig for alt å fungere riktig og sikkert. Det er enkelt å installere med pip:

pip installere oauth2client

Du må kanskje også installere PyOpenSSL, avhengig av oppsettet ditt:

pip installere PyOpenSSL

Nå må du installere Gspread av Anton Burnashev på GitHub. Dette er et utmerket bibliotek skrevet for å gjøre det enkelt å få tilgang til Google Sheets i Python. Igjen er dette enkelt å installere ved hjelp av pip:

pip installer gspread

Åpne nå din favoritt tekstredigerer (jeg bruker Sublime Text 3). Opprett en ny Python-fil og lagre den i prosjektkatalogen som google_io.py. Her er testkoden:

skriv ut 'Hei, Verden!'

Gå tilbake til din Terminal og naviger til prosjektkatalogen. Du kan gjøre dette gjennom cd kommando. Du kan bruke ls å liste filer, og pwd for å vise arbeidskatalogen din.

En gang i prosjektkatalogen kan du kjøre Python-skriptet slik:

python google_io.py

Du bør nå se Hei Verden! i kommandolinjen din:

Nå som Python fungerer riktig, kan vi gå videre og sette opp bibliotekene. Slett hei verdenskoden. Importer nå Gspread og kjør koden igjen:

importer gspread

Hvis ting fungerer riktig, skjer ingenting. Hvis du får en feil, kanskje å si ingen modul kalt X hvor X er navnet på modulen du skrev (Gspread), og dobbeltsjekk pip installerte modulen riktig, og at du ikke har skrevet en typografisk feil.

Her er koden for å komme i gang:

import json import gspread fra oauth2client.client import SignedJwtAssertionCredentials json_key = json.load (åpen ('creds.json')) # json legitimasjon du lastet ned tidligere omfang = ['https://spreadsheets.google.com/feeds'] credentials = SignedJwtAssertionCredentials (json_key ['client_email'], json_key ['private_key']. Encode (), scope) # få e-post og nøkkel fra creds file = gspread.authorize (legitimasjon) # autentiser med Google ark = file.open ("MUO_Python_Sheet" ). ark1 # åpent ark

Dette henter bare dine detaljer fra .json fil, og bruker dem til å autentisere med Google. Det åpner så et ark som heter MUO_Python_Sheet. Du må kanskje endre dette til navnet på arket ditt (hvis du har delt det riktig). Python er saksfølsom, så sørg for at du skriver inn denne koden på riktig måte.

Lesning

Nå som alt er satt opp, er det trivielt å lese eller skrive data. Slik velger du et utvalg av celler (i dette tilfellet alle bilceller):

all_cells = sheet.range ('A1: C6') skriv ut all_cells

Her ser det ut som:

Ikke veldig bra er det? Python har dumpet innholdet i objektet, uten hensyn til formatering. Fordi dette er lagret i all_cells variabel, kan den nås som alle andre Python-objekter. Slik skriver du ut alle celleverdiene i et bedre format:

for celle i all_cells: print cell.value

Og det ser slik ut:

Det er mulig å få tilgang til celler enkeltvis (selv om dette er tregt hvis du gjør det mange ganger):

A1 = sheet.acell ('A2'). Verdi # denne cellen inneholder "Ford"

Eller du kan bruke cellekoordinatene:

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

Det er enkelt å få alle verdiene i en rad:

rad = sheet.row_values ​​(1) # første rad

Eller du kan få en hel kolonne. Dette får den Modell rad:

col = sheet.col_values ​​(2) # modeller

Husk at disse to metodene ikke vet hvor mye data du har. Hvis du bare har tre rader, flere ekstra tømme celler vil bli returnert. Det er nesten alltid bedre å få tilgang til en forhåndsdefinert blokk med celler.

skrive

Det er like lett å skrive tilbake i arket, og du kan bruke cellenavn eller koordinater, akkurat som når du leser:

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

Prosjektsiden på GitHub har mange flere eksempler.

Hvis du skriver til et viktig ark, kan du kanskje vurdere en sikkerhet celle. Lagre en verdi i en bestemt celle (jeg bruker “Ikke slett dette”) og les deretter den cellen først. Hvis innholdet er endret, er kolonner lagt til eller fjernet i arket ditt, så skriv ikke videre! Slik kan det oppnås:

hvis sheet.acell ('B3')! = 'SIKKERHET': # noe har endret seg i arket, IKKE OPPBEVAR øke Unntak ("Oh My, jeg er ikke klar for dette.") ellers: # fortsett med skriving sheet.update_acell ( 'C2', 'Blue')

Dette er god praksis. Det sikrer at skriptet ditt ikke ved et uhell kan skrive inn i feil kolonne. Det er ikke en erstatning for riktige sikkerhetskopier (du har sikkerhetskopier, ikke sant?).

Nå som du vet det grunnleggende, gå og gjør noe kul! Lær hvordan du bruker cron Slik planlegger du oppgaver i Linux med Cron og Crontab Slik planlegger du oppgaver i Linux med Cron og Crontab Evnen til å automatisere oppgaver er en av de futuristiske teknologiene som allerede er her. Hver Linux-bruker kan dra nytte av planleggingssystemet og brukeroppgaver, takket være cron, en brukervennlig bakgrunnstjeneste. Les mer for å planlegge oppgaver i Linux (eller sjekk ut et Windows-alternativ Slik kjører du Linux Style Cron-jobber på Windows Slik kjører du Linux Style Cron-jobber på Windows Read More). Kanskje du kan drive en fotoramme Dusjtanker og EarthPorn: Lag en inspirerende hindbær Pi Fotoramme Dusjtanker og EarthPorn: Lag en inspirerende Raspberry Pi fotoramme Les mer eller lage et kontorpumbrett - det var det jeg gjorde!

Har du interaksjon med Google Sheets før? Gi oss beskjed om dine erfaringer i kommentarene nedenfor!

Les mer om: Google Disk, Google Sheets, Python.