Проблема с декодированием при загрузке из корзины Amazon S3

#python #amazon-web-services #amazon-s3 #encoding #decoding

Вопрос:

Я пытаюсь получить CSV-файл из корзины Amazon S3, как это:

 s3 = boto3.client('s3')
obj = s3.get_object(Bucket='BUCKET_NAME', Key='FILE_NAME')
data = obj['Body'].read().decode('utf-8').splitlines()
 

Но вот что я получаю:

 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x94 in position 10: invalid start byte
 

Я подумал, что неправильно понял кодировку файла, поэтому побежал file FILE_NAME.csv и получил UTF-8. Я также пробовал латынь-1 и некоторые другие кодировки, но все они дают мне тарабарщину. Любая помощь будет признательна, и спасибо вам всем!

Комментарии:

1. Попробуй obj = s3.get_object(Bucket='BUCKET_NAME', Key='FILE_NAME', ResponseContentType='text/csv') — это сработает?

2. @ErmiyaEskandary К сожалению, это не работает. Это ошибка, которую я получаю: UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 10-11: invalid continuation byte

3. @ErmiyaEskandary вывод obj['body'] : <botocore.response.StreamingBody object at 0x00000161BD0543D0> вывод obj['body'].read() : xc7)Dx94xcc:9x01xb4x1fxa9x01x93Gxb6x84Dvxdfx9bxd8xd0uHp<xfexfbxeexb4xeax83x1x02x14x00x14x00x08x08x08x00xf4x8eKSx15 xf8xeewx02x00x00x (это части вывода) вывод obj['body'].read().decode('utf-8') : UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 10-11: invalid continuation byte

4. @ErmiyaEskandary Не уверен, как я могу узнать, какой набор сжатия у файла

5. @ErmiyaEskandary В любом случае работает на меня. Я попытался зациклиться на содержимом, и я только что получил следующее: b'hZ0' b'KRhxc1xb4x10:x1fxe6xb7xc3!xc6xc5xc4x03xc2fz>1xc0x9fxa9Tx06xe5xed'xd9xb4x9cxb1xcbvx87x00x08x9bix91-xac xdax14xd9x02xfcFxad'x86x1d]-zx06x84x84xccx8fxe1xc2xf7xbbx13xe4"xbfxf5mxc7xd7UTx0bxb8Sxb4x06Ux01x12wixfd($x08xa27x04Px94x18,xe5xb6x1cx9ax93xdcx16x94x7fx9bxa4xa2xf8$xc7xe2xc4`x813Sxb7' b"?`Yx1e'Qx1cxfaqxca?xeaxfaxe9" (Это часть вывода)