Как читать файл jsonl.gz, хранящийся в корзине s3, с помощью Boto3- Python3 - PullRequest
0 голосов
/ 05 августа 2020

У меня в корзине s3 есть несколько файлов, которые хранятся как файлы .GZ. Я использую boto3 для доступа к этому файлу и пытаюсь прочитать его содержимое.

Однако я продолжаю получать эту ошибку, когда запускаю свой код:

OSError: [Errno 9] read() on write-only GzipFile object

Здесь это мой код:

    import boto3
    import os
    import json
    from io import BytesIO
    import gzip
    from gzip import GzipFile
    from datetime import datetime
    import logging
    import botocore
    
    # AWS Bucket Info
    BUCKET_NAME = '<my_bucket_name>'

    #My bucket's key information to where the .GZ files are stored
    key1 = 'my/path/to/file/shar1-jsonl.gz'
   # key2 = 'my/path/to/file/shar2-jsonl.gz'
   # key3 = 'my/path/to/file/shar3-jsonl.gz'
    
    # Create s3 connection
    s3_resource = boto3.resource('s3', aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY)
   
    zip_obj = s3_resource.Object(bucket_name=BUCKET_NAME, key=key1)
    buffer = BytesIO(zip_obj.get()["Body"].read())
    
    z = gzip.open(buffer,'wb').read().decode(('utf-8'))

Есть ли способ собрать файл jsonl.gz, а затем прочитать его содержимое с помощью boto3? Я новичок в файлах boto3 и gzip, поэтому любые идеи или предложения помогут

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...