Cómo leer y escribir en Google Sheets con Python

Cómo leer y escribir en Google Sheets con Python / Programación

Python es un excelente lenguaje de programación. La sintaxis puede parecer extraña e inusual, sin embargo, es fácil de aprender y usar. Funciona con Minecraft Pi Edition. Aprenda Python y Electrónica con Minecraft Pi Edition. Aprenda Python y Electrónica con Minecraft Pi Edition. ¿Siempre ha querido aprender a codificar pero no sabía por dónde empezar? Aprende a controlar Minecraft en la Raspberry Pi usando Python y algunos aparatos electrónicos simples. Leer más, junto con una gran cantidad de sitios web y proyectos de investigación académica.

En este artículo, te mostraré cómo leer y escribir en Google Sheets usando Python. Asegúrese de leer nuestras razones por las que la programación en Python no es inútil 5 Razones por las que la programación en Python no es inútil 5 Razones por las que la programación en Python no es inútil Python: o lo ama o lo odia. Incluso puedes moverte de un extremo a otro como un péndulo. En cualquier caso, Python es un lenguaje sobre el que es difícil ser ambivalente. Lea más y nuestras cinco configuraciones de Google Sheets 5 Configuración de Google Sheets Esencial para el trabajo en equipo 5 Configuración de Google Sheets Esencial para el trabajo en equipo Google Sheets tiene más funciones para admitir el ingreso y procesamiento de datos colectivos de lo que usted piensa. Le presentaremos las funciones y características de Google Sheets que son esenciales para los proyectos grupales. Leer más que son esenciales para el trabajo en equipo. Ellos proporcionarán un conocimiento de fondo útil. Si está comenzando su viaje en Python, estos 5 mejores sitios web para aprender Python Los 5 mejores sitios web para aprender a programar en Python Los 5 mejores sitios web para aprender a programar en Python ¿Quiere aprender la programación de Python? Estas son las mejores maneras de aprender Python en línea, muchas de las cuales son completamente gratuitas. Leer más son un buen punto de partida..

Configuración de Google

Antes de saltar al código, se necesita una configuración inicial en las Hojas de cálculo de Google.

Primero, create una nueva hoja. Puede omitir este paso si ya tiene uno configurado. Estoy usando una lista de coches de rally para este ejemplo:

Ahora necesitas configurar tus opciones para compartir. Tendrá que generar Credenciales firmadas, algo que suena mas dificil de lo que es. Navegue a la Consola de desarrolladores de Google y cree un nuevo proyecto (o use uno existente):

Dale a tu proyecto un nombre adecuado y luego haz clic crear:

Debajo API de Google Apps seleccionar API de unidad:

Escoger Habilitar:

Ahora seleccione Cartas credenciales en el menú de la izquierda:

Haga clic en la pequeña flecha en la Crear credenciales botón:

Ahora seleccione Clave de cuenta de servicio:

Escoger Cuenta de servicio predeterminada de App Engine debajo Cuenta de servicio y JSON como el formato:

Haga clic en crear, y debería obtener una .json descarga de archivos. Mueve esto a tu directorio de proyecto y renómbrelo creds.json. Finalmente, abre el archivo y busca client_email. Este debe ser el nombre de tu proyecto en appspot.gserviceaccount.com. Comparte tu hoja de Google con esta dirección de correo electrónico (Parte superior derecha > Compartir > Ingrese correo electrónico).

Eso es todo por el lado de Google Drive..

Configuración de Python

Hay dos versiones principales de Python: 2.7 y 3.x. Usaré 2.7, pero realmente no importa lo que uses. La wiki de Python rompe las diferencias si estás interesado. Es posible que desee instalar un entorno virtual. Eso está fuera del alcance de este artículo, pero es una buena práctica..

Si está ejecutando Microsoft Windows, es posible que deba descargar e instalar Python. Mac OS viene con Python ya instalado. Como estoy usando una Mac, este proyecto se creará como tal. Debería poder seguir razonablemente bien en una máquina con Windows o Linux. Asegúrese de leer nuestra guía ¿Oye, usuario de Windows, deberías cambiarte a Linux o Mac? Hola, usuario de Windows, ¿debería cambiar a Linux o Mac? ¿Alguna vez consideraste cambiar de Windows a Linux o Mac? La respuesta rápida: si está en Windows, permanezca en Windows y no se preocupe por la actualización todavía. Este es el por qué. Lea más acerca de si debe cambiar.

Primero, abre una nueva terminal. Necesitará usar pip para instalar algunos paquetes de Python. Esta es una herramienta recomendada que facilita la administración de paquetes. Viene con Python.

Necesitas instalar un oauth2client. Oauth es un marco de autorización web. No discutiré los detalles, pero es necesario que todo funcione correctamente y con seguridad. Es fácil de instalar usando pip:

pip instalar oauth2client

Es posible que deba instalar PyOpenSSL también, dependiendo de su configuración:

pip instalar PyOpenSSL

Ahora necesitas instalar Gspread de Anton Burnashev en GitHub. Esta es una excelente biblioteca escrita para facilitar el acceso a Google Sheets en Python. De nuevo, esto es fácil de instalar usando pip:

pip instalar gspread

Ahora abre tu editor de texto favorito (estoy usando Sublime Text 3). Cree un nuevo archivo de Python y guárdelo en el directorio de su proyecto como google_io.py. Aquí está el código de prueba:

Imprimir '¡Hola mundo!'

Vuelve a tu Terminal y navega a tu directorio de proyectos. Usted puede hacer esto a través de la discos compactos mando. Puedes usar ls para listar archivos, y pwd para mostrar su directorio de trabajo.

Una vez en el directorio de su proyecto, puede ejecutar su secuencia de comandos de Python así:

python google_io.py

Ahora deberías ver Hola Mundo! en tu linea de comando:

Ahora que Python está funcionando correctamente, avancemos y configuremos las bibliotecas. Elimina el código de hola mundo. Ahora importa Gspread y ejecuta el código de nuevo:

importar gspread

Si las cosas están funcionando correctamente, nada sucederá. Si te equivocas, tal vez digas ningún módulo llamado X donde X es el nombre del módulo que usted escribió (Gspread), vaya y verifique que pip haya instalado el módulo correctamente, y que no haya cometido un error tipográfico.

Aquí está el código para empezar:

import json import gspread desde oauth2client.client import SignedJwtAssertionCredentials json_key = json.load (abierto ('creds.json')) # json credenciales que descargó antes scope = ['https://spreadsheets.google.com/feeds'] credentials = SignedJwtAssertionCredentials (json_key ['client_email'], json_key ['private_key']. Encode (), scope) # get email and key de creds file = gspread.authorize (credentials) # authenticate with Google sheet = file.open ("MUO_Python_Sheet" ) .sheet1 # hoja abierta

Esto simplemente recupera sus detalles de la .json archivo, y luego los utiliza para autenticarse con Google. A continuación, abre una hoja llamada MUO_Python_Sheet. Es posible que deba cambiar esto al nombre de su hoja (siempre que lo haya compartido correctamente). Python distingue entre mayúsculas y minúsculas, así que asegúrese de ingresar este código correctamente.

Leyendo

Ahora que todo está configurado, es trivial leer o escribir datos. Así es como selecciona un rango de celdas (en este caso, todas las celdas de automóviles):

all_cells = sheet.range ('A1: C6') imprime all_cells

Esto es lo que parece:

No es muy bonito, ¿verdad? Python ha volcado el contenido del objeto, sin tener en cuenta el formato. Debido a que esto se almacena en el all_cells variable, se puede acceder como cualquier otro objeto de Python. Así es como imprime todos los valores de celda en un formato más agradable:

para celdas en todas las celdas: imprima celda.valor

Y eso se ve así:

Es posible acceder a las celdas individualmente (aunque esto es lento si lo haces muchas veces):

A1 = sheet.acell ('A2'). Valor # esta celda contiene "Ford"

O puedes usar las coordenadas de la celda:

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

Es fácil obtener todos los valores de una fila:

row = sheet.row_values ​​(1) # first row

O puede obtener una columna completa. Esto obtiene el Modelo fila:

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

Tenga en cuenta que estos dos métodos no saben la cantidad de datos que tiene. Si solo tienes tres filas, múltiples extras. vacío Las celdas serán devueltas. Casi siempre es mejor acceder a un bloque de celdas predefinido.

Escritura

Es tan fácil volver a escribir en la hoja, y puedes usar nombres de células o coordenadas, como cuando lees:

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

La página del proyecto en GitHub tiene muchos más ejemplos..

Si está escribiendo en una hoja importante, puede considerar una la seguridad célula. Almacenar un valor en una celda determinada (yo uso “No borres esto”) y luego leer esa celda primero. Si el contenido ha cambiado, entonces las columnas se han agregado o eliminado en su hoja, ¡así que no continúe escribiendo! Aquí es cómo se podría lograr eso:

if sheet.acell ('B3')! = 'SAFETY': # algo ha cambiado en la hoja, NO PROCEDA aumentar la Excepción ("Oh My, no estoy listo para esto") más: # continúa con tu escritura sheet.update_acell ('C2', 'Blue')

Esta es una buena práctica. Asegura que su script no pueda escribir accidentalmente en la columna incorrecta. No es un sustituto de las copias de seguridad adecuadas (usted tiene copias de seguridad, ¿verdad?).

Ahora que sabes lo básico, ve y haz algo genial. Aprenda a usar cron Cómo programar tareas en Linux con Cron y Crontab Cómo programar tareas en Linux con Cron y Crontab La capacidad de automatizar tareas es una de esas tecnologías futuristas que ya está aquí. Cada usuario de Linux puede beneficiarse de la programación de tareas del sistema y del usuario, gracias a cron, un servicio en segundo plano fácil de usar. Lea más para programar tareas en Linux (o seleccione una alternativa de Windows Cómo ejecutar trabajos de Linux Style Cron en Windows Cómo ejecutar trabajos de Linux Style Cron en Windows Leer más). Tal vez podría alimentar un marco de fotos ShowerThoughts y EarthPorn: haga una inspiradora frambuesa Pi Photo Frame ShowerThoughts y EarthPorn: cree una inspiradora frambuesa Pi Photo Frame Lea más o haga un tablero de la oficina: eso es lo que hice!

¿Has interactuado con Google Sheets antes? Háganos saber sus experiencias en los comentarios a continuación.!

Explora más acerca de: Google Drive, Google Sheets, Python.