Saltar al contenido

¿Cómo creo un CSV en Lambda usando Python?

Solución:

La respuesta anterior de Repakula Srushith es correcta pero creará un csv vacío ya que el archivo no se cierra. Puede cambiar el código a

f = open("/tmp/csv_file.csv", "w+")
temp_csv_file = csv.writer(f) 
temp_csv_file.writerow(["Account Name", "Month", "Cost"])

# writing rows in to the CSV file
for detail in response:
    temp_csv_file.writerow([detail['account_name'],
                            detail['month'],
                            detail['cost']
                            ])
f.close()

Aquí hay una función de muestra para crear un archivo CSV en Lambda usando Python:

Suponiendo que la variable ‘respuesta’ tiene los datos necesarios para crear el informe, el siguiente código le ayudará a crear un archivo CSV temporal en el /tmp carpeta de la función lambda:

import csv
temp_csv_file = csv.writer(open("/tmp/csv_file.csv", "w+"))
# writing the column names
temp_csv_file.writerow(["Account Name", "Month", "Cost"])

# writing rows in to the CSV file
for detail in response:
    temp_csv_file.writerow([detail['account_name'],
                            detail['month'],
                            detail['cost']
                            ])

Una vez que haya creado el archivo CSV, puede cargarlo S3 y enviarlo como un correo electrónico o compartirlo como un enlace usando el siguiente código:

client = boto3.client('s3')
client.upload_file('/tmp/csv_file.csv', BUCKET_NAME,'final_report.csv')

Puntos para recordar:

  1. El / tmp es un directorio de almacenamiento de 512 MB de tamaño que se puede utilizar para almacenar algunos archivos temporales o en la memoria.
  2. No debe confiar en este almacenamiento para mantener el estado en las funciones lambda posteriores.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *