[英]Read gzip file from s3 bucket
嘿,我正在嘗試從 s3 存儲桶中讀取 gzip 文件,這是我的嘗試:
s3client = boto3.client(
's3',
region_name='us-east-1'
)
bucketname = 'wind-obj'
file_to_read = '20190101_0000.gz'
fileobj = s3client.get_object(
Bucket=bucketname,
Key=file_to_read
)
filedata = fileobj['Body'].read()
現在要打開 gzip 文件,我正在這樣做:
gzip.open(filedata,'rb')
但它給我帶來了錯誤:
ValueError: embedded null byte
所以我試圖先解碼它:
contents = filedata.decode('utf-8')
這引發了另一個錯誤:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
我已經嘗試使用ISO-8859-1
對其進行解碼,然后它正在解碼,但在打開 gzip 文件時再次出現相同的錯誤。
或者有沒有其他方法可以從 S3 中提取數據,比如使用 URL 之類的?
gzip.open
需要一個文件名或已打開的文件 object,但您直接將下載的數據傳遞給它。 嘗試使用gzip.decompress
代替:
filedata = fileobj['Body'].read()
uncompressed = gzip.decompress(filedata)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.