output.tar.gzAWS Comprehend 已創建一個在 S3 存儲桶中調用的文件。我正在嘗試使用 Python 將此文件加載到內存中并嘗試了以下操作:import boto3from io import BytesIOimport gzips3 = boto3.client("s3")obj = s3.get_object(Bucket=BUCKET, Key=KEY)mycontentzip = gzip.GzipFile(fileobj=BytesIO(obj['Body'].read())).read()lines = mycontentzip.decode("utf-8")我還嘗試了這篇文章中的解決方案,包括不再需要 BytesIO: Reading contents of a gzip file from a AWS S3 in Python我能夠使用這些解決方案返回一個測試文件,該文件不確定.gz我能否正確連接到 S3 存儲桶。在所有嘗試中,返回的是一個僅包含以下內容的文件:00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x...我正在使用 Python=3.7.7 Boto3=1.10.5我還嘗試從 AWS 控制臺手動下載文件。奇怪的是,該文件在 MacOS 10.15.6 中解壓縮為“.jsonl”文件。但是,在 VScode 中以 JSON 形式查看時打開效果很好。還有其他人遇到過這個問題嗎?提前感謝您的任何想法。
1 回答

拉風的咖菲貓
TA貢獻1995條經驗 獲得超2個贊
那是一個 tar.gz 文件,即tar
用算法壓縮的存檔gzip
。
如果您只是使用 閱讀它gzip.GzipFile()
,您仍然有一個需要解釋的二進制 tar 存檔。
使用tarfile
模塊讀取它;tar 存檔,如 zips,可以包含多個文件,其中之一就是.jsonl
您最終看到的文件。
添加回答
舉報
0/150
提交
取消