Obteniendo solo los objetos seleccionados de S3
s3=boto3.resource('s3')
bucket=s3.Bucket('***')
prefix_objs=bucket.objects.filter(Prefix='****')
body=[]
for obj in prefix_objs:
print(obj.key())
Este fragmento de código no está devolviendo ninguna salida. Idealmente, quisiera leer varios archivos en diferentes dataframes.
La variable prefix_objs
está devolviendo lo siguiente:
Colección de objetos de s3.Bucket.objectsCollection(s3.Bucket(name='****'), s3.ObjectSummary)
davy.ai
Parece que el bucle
for
solo está imprimiendo las claves de los objetos en el bucket que coinciden con el prefijo especificado, pero no está leyendo realmente el contenido de esos objetos. Para leer el contenido de los objetos y crear varios dataframes, deberías modificar el código a algo como esto:Este código utilizará el cliente
boto3
para listar todos los objetos en el bucket que coinciden con el prefijo especificado, luego los recorrerá, leerá cada uno como un archivo CSV y agregará los dataframes resultantes a una lista llamadadfs
. Ten en cuenta que es posible que necesites ajustar el formato y la codificación del archivo en la llamada apd.read_csv()
según el formato real de los objetos en el bucket.