【发布时间】:2019-05-02 14:57:40
【问题描述】:
下面是我用来读取gz文件的代码
import json
import boto3
from io import BytesIO
import gzip
def lambda_handler(event, context):
try:
s3 = boto3.resource('s3')
key='test.gz'
obj = s3.Object('athenaamit',key)
n = obj.get()['Body'].read()
#print(n)
gzip = BytesIO(n)
gzipfile = gzip.GzipFile(fileobj=gzip)
content = gzipfile.read()
print(content)
return 'dddd'
除了 e 例外: 打印(e) 提高e 但我得到以下错误
"errorMessage": "'_io.BytesIO' object has no attribute 'GzipFile'",
"stackTrace": [
" File \"/var/task/lambda_function.py\", line 20, in lambda_handler\n raise e\n",
" File \"/var/task/lambda_function.py\", line 14, in lambda_handler\n gzipfile = gzip.GzipFile(fileobj=gzip)\n"
python版本-3.7
但它也不适合我, 请建议我如何读取文件内容
【问题讨论】:
-
您的命名约定有冲突。将
gzip = BytesIO(n)的变量名分配更改为不同的变量名。正如所写,您通过在代码中命名变量gzip来覆盖gzip模块的功能。 -
@vealkind 谢谢这是一个愚蠢的错误
标签: python amazon-s3 aws-sdk boto3