web-dev-qa-db-fra.com

Écriture de json dans un fichier s3

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'))
6
Learning

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

3
Usman Mutawakil

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')))
)
20
Uwe Bretschneider