Python 如何在AWS Lambda中读取上传的excel文件?

Python 如何在AWS Lambda中读取上传的excel文件?,python,pandas,aws-lambda,aws-api-gateway,Python,Pandas,Aws Lambda,Aws Api Gateway,我上传了一个来自邮递员的excel文件,并试图用熊猫在AWS lambda中阅读它。我怎么做 我已尝试使用“cgi.parse_multipart”从API网关事件读取字节。我能够成功读取csv文件,但不能读取xlsx文件 从cgi导入parse\u头,parse\u多部分 作为pd进口熊猫 从io导入字节io、字符串io 导入json def get_数据(事件): c_类型,c_数据=解析_头(事件['headers']['content-type']) c_数据['boundary']=字

我上传了一个来自邮递员的excel文件,并试图用熊猫在AWS lambda中阅读它。我怎么做

我已尝试使用“cgi.parse_multipart”从API网关事件读取字节。我能够成功读取csv文件,但不能读取xlsx文件

从cgi导入parse\u头,parse\u多部分
作为pd进口熊猫
从io导入字节io、字符串io
导入json
def get_数据(事件):
c_类型,c_数据=解析_头(事件['headers']['content-type'])
c_数据['boundary']=字节(c_数据['boundary'],“utf-8”)
断言c_类型==“多部分/表单数据”
body=事件['body']
正文=字节(正文“utf-8”)
form_data=parse_multipart(BytesIO(body),c_data)
数据=表单_数据['file'][0]
s=str(数据,'utf-8')
d=StringIO(s)
#df=pd.read\U csv(d)
df=pd.read\u excel(d)
打印(df)
def运行(事件、上下文):
输出={}
输出['statusCode']=200
输出['body']=json.dumps(获取数据(事件))
返回输出
尝试读取xlsx文件时,出现以下错误:


回溯(最近一次呼叫最后一次):
文件“/var/task/upload_test.py”,第108行,正在运行
输出['body']=json.dumps(获取数据(事件))
文件“/var/task/upload_test.py”,第52行,在get_数据中
df=pd.read\u excel(d)
包装器中的文件“/opt/python/lib/python3.6/site packages/pandas/util/_decorators.py”,第188行
返回函数(*args,**kwargs)
包装器中的文件“/opt/python/lib/python3.6/site packages/pandas/util/_decorators.py”,第188行
返回函数(*args,**kwargs)
文件“/opt/python/lib/python3.6/site packages/pandas/io/excel.py”,第350行,以只读excel格式
io=ExcelFile(io,engine=engine)
文件“/opt/python/lib/python3.6/site packages/pandas/io/excel.py”,第653行,在__
self.\u reader=self.\u引擎[引擎](self.\u io)
文件“/opt/python/lib/python3.6/site packages/pandas/io/excel.py”,第422行,在__
self.book=xlrd.open\u工作簿(文件内容=数据)
文件“/var/task/xlrd/_init__.py”,第157行,在打开的工作簿中
参差不齐的行=参差不齐的行,
文件“/var/task/xlrd/book.py”,第92行,在打开的工作簿中
biff\u version=bk.getbof(XL\u工作簿\u全局)
文件“/var/task/xlrd/book.py”,第1274行,在getbof中
操作码=self.get2bytes()
文件“/var/task/xlrd/book.py”,第675行,以Get2字节为单位

return(BYTES_ORD(hi))我也遇到了同样的问题。我使用chalice部署lambda+API GW。不幸的是,xls文件已损坏。我猜这是因为API GW设置。我没有弄清楚它是什么(有人说您需要在设置中向二进制类型添加多部分/表单数据)。我最终使用了zappa-它产生了可工作的配置。我也有同样的问题。我使用chalice部署lambda+API GW。不幸的是,xls文件已损坏。我猜这是因为API GW设置。我没有弄清楚它是什么(有人说您需要在设置中向二进制类型添加多部分/表单数据).我最终使用了zappa-它生成工作配置