Lire csv à partir d'Amazon s3 en utilisant python2.7
Je peux facilement obtenir le seau nom de s3 mais quand j'ai lu le fichier csv à partir de s3, il donne une erreur à chaque fois.
import boto3
import pandas as pd
s3 = boto3.client('s3',
aws_access_key_id='yyyyyyyy',
aws_secret_access_key='xxxxxxxxxxx')
# Call S3 to list current buckets
response = s3.list_buckets()
for bucket in response['Buckets']:
print bucket['Name']
output
s3-bucket-data
.
import pandas as pd
import StringIO
from boto.s3.connection import S3Connection
AWS_KEY = 'yyyyyyyyyy'
AWS_SECRET = 'xxxxxxxxxx'
aws_connection = S3Connection(AWS_KEY, AWS_SECRET)
bucket = aws_connection.get_bucket('s3-bucket-data')
fileName = "data.csv"
content = bucket.get_key(fileName).get_contents_as_string()
reader = pd.read_csv(StringIO.StringIO(content))
avoir d'erreur-
boto.exception.S3ResponseError: S3ResponseError: 400 Bad Request
Comment je peux lire le fichier csv à partir de s3?
- Quelle erreur avez-vous? Sans voir qu'il est difficile de vous aider.
- Double Possible de la Lecture d'un fichier à partir d'un privé S3 seau pour une pandas dataframe
- C'était en python3+, j'ai besoin de python2.7
- mise à jour du code
Vous devez vous connecter pour publier un commentaire.
vous pouvez utiliser
s3fs
paquets3fs prend également en charge aws profils dans les fichiers d'informations d'identification.
Voici un exemple (vous n'avez pas à bloc, mais j'ai juste eu cet exemple pratique),
boto
est onething j'adore quand il s'agit de la manipulation des données sur S3 avec python..installer
boto
à l'aide depip install boto
J'ai rencontré ce problème avec un peu de Régions AWS. J'ai créé un seau en "us-east-1 et suivants du code a bien fonctionné:
Essayez de créer un nouveau seau dans us-east-1 et de voir si cela fonctionne.
Essayez ce qui suit: