Så läser och skriver till Google Sheets med Python

Så läser och skriver till Google Sheets med Python / Programmering

Python är ett utmärkt programmeringsspråk. Syntaxen kan verka konstig och ovanlig, men det är lätt att lära sig och använda. Det styr Minecraft Pi Edition Lär dig Python och Elektronik med Minecraft Pi Edition Lär dig Python och Elektronik med Minecraft Pi Edition Har du alltid velat lära dig att koda men visste inte vart du ska börja? Lär dig hur man kontrollerar Minecraft på Raspberry Pi med Python och lite enkel elektronik. Läs mer, tillsammans med en rad webbplatser och akademiska forskningsprojekt.

I den här artikeln visar jag dig hur du läser och skriver till Google Sheets med Python. Se till att du läser våra skäl till varför Python programmering inte är värdelös. 5 Anledningar till att Python-programmering inte är oanvändbar. 5 Anledningar till att Python-programmering inte är oanvändbar Python - Du älskar antingen det eller du hatar det. Du kan till och med svänga från ena änden till en annan som en pendel. Oavsett, Python är ett språk som är svårt att vara ambivalent. Läs mer och våra fem Google Plattformsinställningar 5 Inställningar för Google Plattor Viktiga för Teamwork 5 Google Plattformsinställningar Viktiga för Teamwork Google Plattor har fler funktioner för att stödja kollektiv dataingång och bearbetning än du kanske tror. Vi presenterar funktioner och funktioner i Google Sheets som är viktiga för gruppprojekt. Läs mer som är nödvändiga för lagarbete. De ger lite användbar bakgrundskunskap. Om du bara börjar din Python-resa, kommer dessa 5 bästa webbplatser att lära dig Python De 5 bästa hemsidorna för att lära dig Python-programmering De 5 bästa webbplatserna för att lära dig Python-programmering Vill du lära dig Python programmering? Här är de bästa sätten att lära sig Python online, varav många är helt gratis. Läs mer är en bra utgångspunkt.

Google Inställning

Innan du hoppar in i koden finns det någon inledande inställning som behövs på Google Sheets.

Först skapa dig ett nytt ark. Du kan hoppa över det här steget om du redan har en uppsättning. Jag använder en lista med rallybilar för det här exemplet:

Nu behöver du konfigurera dina delningsalternativ. Du måste generera Undertecknade legitimationsuppgifter, något som låter svårare än det är. Navigera till Google Developers Console och skapa ett nytt projekt (eller använd en befintlig):

Ge ditt projekt ett lämpligt namn och klicka sedan på skapa:

Undertill API för Google Apps Välj Drive API:

Välja Gör det möjligt:

Välj nu Referenser på vänster meny:

Klicka på den lilla pilen på Skapa legitimationsuppgifter knapp:

Välj nu Tjänsten konto nyckel:

Välja App Engine standardtjänst konto under Service konto och JSON som format:

Klicka på Skapa, och du borde få en .json Filhämtning. Flytta det här till din projektkatalog och byt namn på den creds.json. Slutligen, öppna filen och leta efter client_email. Detta ska vara namnet på ditt projekt på appspot.gserviceaccount.com. Dela ditt Google-ark med den här e-postadressen (Överst till höger > Dela med sig > Skriv in e-mail).

Det är det för Google Drive-sidan.

Python Setup

Det finns två huvudsakliga Python-versioner: 2,7 och 3.x. Jag använder 2.7, men det spelar ingen roll vad du använder. Python wiki bryter ner skillnaderna om du är intresserad. Du kanske vill installera en virtuell miljö. Det ligger utanför ramen för denna artikel, men god praxis.

Om du kör Microsoft Windows kan du behöva hämta och installera Python. Mac OS kommer med Python redan installerat. När jag använder en Mac kommer detta projekt att skapas som sådant. Du bör kunna följa ganska bra på en Windows- eller Linux-maskin. Se till att du läser vår guide Hey Windows-användare, ska du byta till Linux eller Mac? Hej Windows-användare, ska du byta till Linux eller Mac? Har du någonsin övervägt att byta från Windows till Linux eller Mac? Det snabba svaret: om du är på Windows, stanna på Windows och oroa dig inte om att uppgradera ännu. Här är varför. Läs mer om huruvida du ska byta.

Öppna först en ny terminal. Du måste använda pip för att installera några Python-paket. Detta är ett rekommenderat verktyg som gör det väldigt lätt att hantera paket. Det kommer med Python.

Du måste installera en oauth2client. Oauth är en ram för webbtillstånd. Jag kommer inte att diskutera detaljerna i det, men det är nödvändigt att allt fungerar korrekt och säkert. Det är enkelt att installera med pip:

pip installera oauth2client

Du kanske måste installera PyOpenSSL, beroende på din inställning:

pip installera PyOpenSSL

Nu måste du installera Gspread av Anton Burnashev på GitHub. Det här är ett utmärkt bibliotek skrivet för att göra det enkelt att komma åt Google Sheets i Python. Återigen är det enkelt att installera med pip:

pip installera gspread

Öppna nu din favorit textredigerare (jag använder Sublime Text 3). Skapa en ny Python-fil och spara den i din projektkatalog som google_io.py. Här är testkoden:

skriv ut 'Hej världen!'

Gå tillbaka till din Terminal och navigera till din projektkatalog. Du kan göra detta genom CD kommando. Du kan använda ls att lista filer och pwd för att visa din arbetsbok.

En gång i din projektkatalog kan du exekvera ditt Python-skript så här:

python google_io.py

Du borde nu se Hej världen! i din kommandorad:

Nu när Python fungerar korrekt, kan vi fortsätta och konfigurera biblioteken. Ta bort hej världskoden. Importera nu Gspread och kör koden igen:

importera gspread

Om sakerna fungerar korrekt kommer ingenting att hända. Om du får ett fel kanske du säger ingen modul med namnet X där X är namnet på den modul du skrev (Gspread) och dubbelkontrollen installerade modulen korrekt och att du inte har skrivit ett typfel.

Här är koden för att komma igång:

importera json import gspread från oauth2client.client import SignedJwtAssertionCredentials json_key = json.load (öppen ('creds.json')) # json credentials du hämtade tidigare scope = ['https://spreadsheets.google.com/feeds'] credentials = SignedJwtAssertionCredentials (json_key ['client_email'], json_key ['private_key'] .code (), scope) # få e-post och nyckel från creds file = gspread.authorize (credentials) # autentisera med Google ark = file.open ("MUO_Python_Sheet" ). ark1 # öppet ark

Detta hämtar helt enkelt dina uppgifter från .json fil och använder dem sedan för att verifiera med Google. Det öppnar sedan ett ark som heter MUO_Python_Sheet. Du kan behöva ändra detta till namnet på ditt ark (förutsatt att du har delat den korrekt). Python är skiftlägeskänslig, så se till att du anger denna kod korrekt.

Läsning

Nu när allt är inställt är det trivialt att läsa eller skriva data. Så här väljer du ett antal celler (i det här fallet alla bilceller):

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

Så här ser det ut:

Inte så bra är det? Python har dumpat innehållet i objektet, utan hänsyn till formatering. Eftersom detta är lagrat i all_cells variabel, kan den nås som något annat Python-objekt. Så här skriver du ut alla cellvärden i ett snyggare format:

för cell i all_cells: print cell.value

Och det ser så här ut:

Det är möjligt att komma åt cellerna individuellt (även om det här är långsamt om du gör det många gånger):

A1 = sheet.acell ('A2') .värde # den här cellen innehåller "Ford"

Eller du kan använda cellkoordinaterna:

koord = ark.cell (3, 0) .värde

Det är lätt att få alla värden i rad:

rad = sheet.row_values ​​(1) # första raden

Eller så kan du få en hel kolumn. Detta får Modell rad:

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

Tänk på att dessa två metoder inte vet hur mycket data du har. Om du bara har tre rader, flera extra tömma celler kommer att returneras. Det är nästan alltid bättre att komma åt ett fördefinierat block av celler.

Skrift

Det är lika lätt att skriva tillbaka i arket, och du kan använda cellnamn eller koordinater, precis som när du läser:

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

Projektsidan på GitHub har många fler exempel.

Om du skriver till ett viktigt ark, kanske du vill överväga en säkerhet cell. Spara ett värde i en viss cell (jag använder “Ta inte bort det här”) och sedan läsa den cellen först. Om innehållet har ändrats har kolumnerna lagts till eller tagits bort i ditt ark, så skriv inte vidare! Så här kan det uppnås:

om arket.acell ('B3')! = 'SÄKERHET': # något har ändrats i arket, FÖRVÄR INTE höja Undantag ("Åh Min, jag är inte redo för detta.") Annat: # Fortsätt med din skrivning sheet.update_acell ( 'C2', 'Blue')

Detta är bra praxis. Det säkerställer att ditt skript inte kan av misstag skriva in i fel kolumn. Det är inte en ersättning för korrekt säkerhetskopiering (du har säkerhetskopior, eller hur?).

Nu när du vet grunderna, gå och gör något coolt! Lär dig hur man använder cron Så här schemalägger du uppdrag i Linux med Cron och Crontab Hur man schemalägger uppgifter i Linux med Cron och Crontab Möjligheten att automatisera uppgifter är en av de futuristiska tekniker som redan finns här. Varje Linux-användare kan dra nytta av schemaläggningssystem och användaruppgifter, tack vare cron, en lättanvänd bakgrundstjänst. Läs mer för att schemalägga uppgifter i Linux (eller kolla ett Windows-alternativ Så här kör du Linux Style Cron-jobb på Windows Hur man kör Linux Style Cron-jobb på Windows Read More). Kanske kan du driva en fotoram ShowerThoughts och EarthPorn: Gör en inspirerande hallon Pi Fotoram ShowerThoughts and EarthPorn: Gör en inspirerande hallon Pi fotoram Läs mer eller gör en kontorspanel - det var vad jag gjorde!

Har du interagerat med Google Sheets tidigare? Låt oss veta dina erfarenheter i kommentarerna nedan!

Utforska mer om: Google Drive, Google Sheets, Python.