Python AWS Lambda:如何读取S3存储桶中的CSV文件,然后将其上载到另一个S3存储桶?

Python AWS Lambda:如何读取S3存储桶中的CSV文件,然后将其上载到另一个S3存储桶?,python,amazon-web-services,amazon-s3,Python,Amazon Web Services,Amazon S3,我正在做一个项目,从S3存储桶读取文件,去掉所有NA值,然后将它们上传到不同的S3存储桶。我一直在看Lambda教程和示例代码,但我很难理解它到底是如何工作的 我的目标是读取S3存储桶中的任何文件,并使用Lambda函数删除所有NA值,然后将它们上载到不同的S3存储桶。但我真的不明白发生了什么。我阅读了文档,但这对我理解没有多大帮助 如何使下面的代码从S3存储桶读取CSV文件,然后删除所有NA值,然后将它们上载到新的S3存储桶 import json import os import boto3

我正在做一个项目,从S3存储桶读取文件,去掉所有NA值,然后将它们上传到不同的S3存储桶。我一直在看Lambda教程和示例代码,但我很难理解它到底是如何工作的
我的目标是读取S3存储桶中的任何文件,并使用Lambda函数删除所有NA值,然后将它们上载到不同的S3存储桶。但我真的不明白发生了什么。我阅读了文档,但这对我理解没有多大帮助
如何使下面的代码从S3存储桶读取CSV文件,然后删除所有NA值,然后将它们上载到新的S3存储桶

import json
import os
import boto3
import csv

def lambda_handler(event, context):
    
    for record in event['Records']:
        
        bucket = record['s3']['bucket']['name']
        file_key = record['s3']['object']['key']
        s3 = boto3.client('s3')
        
        csv_file = s3.get_object(Bucket=bucket, Key=file_key)
        csv_content = csv_file['Body'].read().split(b'\n')
        
        csv_data = csv.DictReader(csv_content)
欢迎提供文档、视频和建议的链接。

def upload_文件(文件名、存储桶、对象名=无):
“”“将文件上载到S3存储桶
:param file_name:要上载的文件
:param bucket:要上载到的bucket
:param object_name:S3 object name。如果未指定,则使用文件名
:return:如果文件已上载,则为True,否则为False
"""
#如果未指定S3对象名称,请使用文件名称
如果对象名称为“无”:
对象名称=文件名称
#上传文件
s3\u client=boto3.client('s3'))
尝试:
response=s3\u client.upload\u文件(文件名、bucket、对象名)
除ClientError作为e外:
logging.error(e)
返回错误
返回真值

导入boto3
s3=boto3.resource('s3')
s3.meta.client.download_文件('mybucket','hello.txt','/tmp/hello.txt'))
现在,您只需以您想要的任何方式调用并处理csv文件,然后如何高效地处理并上传到s3,这将是一个完全不同的主题

在这篇文章里有很多答案

如果好奇的话,你也可以查看这个,它提供了一些处理更大文件的方法