Open S3 object as a string with Boto3

前端 未结 5 1202
故里飘歌
故里飘歌 2020-12-02 06:13

I\'m aware that with Boto 2 it\'s possible to open an S3 object as a string with: get_contents_as_string()

Is there an equivalent function in boto3 ?

5条回答
  •  渐次进展
    2020-12-02 06:55

    I had a problem to read/parse the object from S3 because of .get() using Python 2.7 inside an AWS Lambda.

    I added json to the example to show it became parsable :)

    import boto3
    import json
    
    s3 = boto3.client('s3')
    
    obj = s3.get_object(Bucket=bucket, Key=key)
    j = json.loads(obj['Body'].read())
    

    NOTE (for python 2.7): My object is all ascii, so I don't need .decode('utf-8')

    NOTE (for python 3.6+): We moved to python 3.6 and discovered that read() now returns bytes so if you want to get a string out of it, you must use:

    j = json.loads(obj['Body'].read().decode('utf-8'))

提交回复
热议问题