Hojas de Cálculo de Google y Python
Tiempo de lectura: 3 minutos
Esta publicación está inspirada en el recordatorio de Patrick McKenzie de que a veces no se necesita una base de datos:
En este tutorial, vamos a utilizar el excelente paquete gspread de Python de Anton Burnashev para leer, escribir y borrar datos de una hoja de cálculo de Google con sólo unas pocas líneas de código.
El API de Google Drive y Cuentas de Servicio
A riesgo de ser el Capitán Obvio, usted va a a necesitar una hoja de cálculo si desea seguir adelante con este post. Si no tiene una a mano que está lleno de buenos datos, le puedo sugerir que haga una copia de esta hoja de cálculo con información de contacto de todos los legisladores de los Estados Unidos? (Nota al margen: Ian Webster utiliza estos datos junto con Twilio de manera de hacer más fácil para los ciudadanos llamar al congreso).
Para acceder a la hoja de cálculo mediante programación, tendrá que crear una cuenta de servicio y credenciales de la OAuth2 desde la consola API de Google. Si usted ha sido traumatizado al desarrollar en OAuth2 antes, no se preocupe; las cuentas de servicio son la forma más fácil de usarlo.
Continúe siguiendo los pasos y el GIF de abajo. Podrá entrar y salir de la consola en 60 segundos (muy parecido a Nick Cage en su película favorita de Nick Cage).
- Vaya a la Consola de API de Google.
- Cree un nuevo proyecto.
- Haga click en Habilitar API. Busque y active la API de Google Drive.
- Cree credenciales para un Servidor Web para acceder a Datos de la Aplicación.
- Nombre la cuenta de servicio y otorgue Papel de Editor del Proyecto.
- Descargue el archivo JSON.
- Copie el archivo JSON a su directorio de código y cámbiele el nombre a: client_secret.json
Hay un último paso necesario para autorizar la aplicación, y es fácil pasarlo por alto!
Encuentre el client_email dentro de client_secret.json. De regreso en la hoja de cálculo, haga clic en el botón de Compartir en la parte superior derecha, y pegue el cliente de correo electrónico en el campo Personas para darle derechos de edición. Pulse enviar.
Si se salta este paso, obtendrá un error de: gspread.exceptions.SpreadsheetNotFound cuando intente acceder a la hoja de cálculo desde Python.
Hemos terminado con la parte aburrida! Ahora vamos con el código.
Leer Datos desde una Hoja de Cálculo con Phyton
Con las credenciales en su lugar (usted los copió en el directorio del código, verdad?) el acceder a una hoja de cálculo de Google en Python requiere sólo de dos paquetes:
- oauth2client- para autorizar con la API de Google Drive mediante OAuth 2.0
- gspread- para interactuar con la Hoja de Cálculo de Google
Instale estos paquetes con:
pip install gspread oauth2client
A continuación, pegue este código en un nuevo archivo llamado spreadsheet.py:
Ejecute spreadsheet.py de Phyton y maravíllese con datos gloriosos y bien formateados.
Insertar, Actualizar y Eliminar desde una Hoja de Cálculo con Python
Sólo hemos arañado la superficie de la bien documentada y completa funcionalidad de gspreads.
Por ejemplo, usted extrajo los datos en una lista de hashes, pero se puede obtener una lista de las listas si así lo prefiere:
sheet.get_all_values()
O simplemente puede extraer los datos de una sola fila, columna o celda:
Puede escribir en la hoja de cálculo cambiando una celda específica:
sheet.update_cell(1, 1, "I just wrote to a spreadsheet using Python!")
O puede insertar una fila en la hoja de cálculo:
También puede eliminar una fila de la hoja de cálculo:
sheet.delete_row(1)
Y averiguar el número total de filas:
sheet.row_count
Compruebe la referencia API de gspread para detalles completos sobre estas
funciones, junto con unas cuantas docenas de otras.
El uso de hojas de cálculo de Google con Python abre posibilidades como la construcción de una aplicación Flask con una hoja de cálculo como la capa de persistencia, o importar datos desde una hoja de cálculo en Google hacia Jupyter Notebooks y haciendo análisis en Pandas. Si quieres empezar a utilizar Python y Twilio, visita nuestro sitio Inicios rápidos con Python.
Si usted desarrolla algo genial, por favor hágamelo saber. Me puede encontrar en gb@twilio.com o @greggyb. Y si este post fue útil, por favor compártalo con alguien que quiera profundizar.
Muchas gracias a Devin y Sam por las revisiones, a Google por las Hojas, y sobre todo, a Anton por gspread.
Publicaciones relacionadas
Recursos relacionados
Twilio Docs
Desde API hasta SDK y aplicaciones de muestra
Documentación de referencia de API, SDK, bibliotecas auxiliares, inicios rápidos y tutoriales para su idioma y plataforma.
Centro de Recursos
Los últimos libros electrónicos, informes de la industria y seminarios web
Aprenda de los expertos en participación del cliente para mejorar su propia comunicación.
Ahoy
Centro de la comunidad de desarrolladores de Twilio
Mejores prácticas, ejemplos de códigos e inspiración para crear comunicaciones y experiencias de participación digital.