首先,需要在AWS Lambda中安装openpyxl和pandas库(这两个库可以在AWS Lambda中使用pip安装)。 接下来,可以使用以下示例代码将XLSX文件转换为CSV文件:
import openpyxl
import pandas as pd
import os
import csv
import tempfile
def lambda_handler(event, context):
s3_bucket = event['Records'][0]['s3']['bucket']['name']
file_path = event['Records'][0]['s3']['object']['key']
file_name = os.path.basename(file_path)
temp_file = tempfile.mktemp()
data_xls = pd.read_excel("s3://{}/{}".format(s3_bucket, file_path), engine='openpyxl')
data_xls.to_csv(temp_file, encoding='utf-8', index=False, quoting=csv.QUOTE_NONNUMERIC)
# Push back to S3
s3 = boto3.client('s3')
s3.upload_file(temp_file, s3_bucket, "{}.csv".format(file_name.split(".")[0]))
return {
'status': 200
}
此代码将XLSX文件从指定的S3存储桶中读取,使用pandas库将其转换为CSV文件,并将其上传回同一个存储桶。最后,Lambda函数将返回状态代码200。