Ce code écrit json dans un fichier en s3, ce que je voulais réaliser, c'est au lieu d'ouvrir le fichier data.json et d'écrire dans le fichier s3 (sample.json),
comment passer le json directement et écrire dans un fichier en s3?
import boto3
s3 = boto3.resource('s3', aws_access_key_id='aws_key', aws_secret_access_key='aws_sec_key')
s3.Object('mybucket', 'sample.json').put(Body=open('data.json', 'rb'))
Amazon S3 est un magasin d'objets (magasin de fichiers en réalité). Les opérations principales sont PUT et GET. Vous ne pouvez pas ajouter de données dans un objet existant dans S3. Vous ne pouvez remplacer que l'intégralité de l'objet lui-même.
Pour une liste des opérations disponibles que vous pouvez effectuer sur s3, consultez ce lien http://docs.aws.Amazon.com/AmazonS3/latest/API/RESTObjectOps.html
Je ne sais pas si j'ai bien compris la question. Vous voulez simplement écrire des données JSON dans un fichier en utilisant Boto3? Le code suivant écrit un dictionnaire python dans un fichier JSON.
import json
import boto3
s3 = boto3.resource('s3')
s3object = s3.Object('your-bucket-name', 'your_file.json')
s3object.put(
Body=(bytes(json.dumps(json_data).encode('UTF-8')))
)