![](/img/trans.png)
[英]How can I decode a .gz file from S3 using an AWS Lambda function?
[英]How do I read a csv file from aws s3 in aws lambda
我是 AWS 服务的新手。我正在尝试从 AWS S3 存储桶读取 csv 文件,但我无法从 AWS lambda 读取或获取任何 output。
import json
import boto3
import csv
s3_client = boto3.client('s3')
def lambda_handler(event, context):
# TODO implement
try:
bucket_name = event["Records"][0]["s3"]["bucket"]["name"]
s3_file_name = event["Records"][0]["s3"]["object"]["key"]
csv_file = s3_client.get_object(Bucket=bucket_name, Key=s3_file_name)
data = csv_file['Body'].read().splitlines(True)
reader = csv.reader(data)
print(reader)
except Exception as err:
print(err)
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
我得到这个 output 但我没有从我的打印行中获取数据,这是为什么?
请帮我!
https://docs.python.org/3/library/csv.html
根据文档,我认为你使用了错误的方式 csv 模块。 所以读者是空的,这就是为什么你的代码不返回任何东西
读取 csv 的一种简单方法是使用 pandas。
import boto3
import pandas as pd
s3 = boto3.client('s3')
response = s3.get_object(Bucket=bucket, Key=path)
content = pd.read_csv(response.get("Body"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.