如何使用AWS lambda从S3存储桶读取csv文件,并将其作为新csv写入另一个S3存储桶?蟒蛇肉
好的,我是AWS的初学者。我正在编写一个lambda函数,根据S3中的文件上载事件触发,删除一些coulmn并将其写入一个新的bucket。在过去的两次数据中,我一直在绞尽脑汁,每次都会得到不同的错误。有人能修改我的代码/修复它吗?outputlv将是我的目标桶。。当前,我获取的“/outputlv/output.csv”路径在打开(“/outputlv/output.csv”、“w”)为输出的文件行中不存在。谢谢如何使用AWS lambda从S3存储桶读取csv文件,并将其作为新csv写入另一个S3存储桶?蟒蛇肉,csv,amazon-s3,aws-lambda,boto3,Csv,Amazon S3,Aws Lambda,Boto3,好的,我是AWS的初学者。我正在编写一个lambda函数,根据S3中的文件上载事件触发,删除一些coulmn并将其写入一个新的bucket。在过去的两次数据中,我一直在绞尽脑汁,每次都会得到不同的错误。有人能修改我的代码/修复它吗?outputlv将是我的目标桶。。当前,我获取的“/outputlv/output.csv”路径在打开(“/outputlv/output.csv”、“w”)为输出的文件行中不存在。谢谢 import json import urllib.parse import b
import json
import urllib.parse
import boto3
import csv
s3 = boto3.client('s3')
def lambda_handler(event, context):
bucket = event['Records'][0]['s3']['bucket']['name']
key = urllib.parse.unquote_plus(event['Records'][0]['s3']['object']['key'], encoding='utf-8')
file_name = s3.get_object(Bucket=bucket, Key=key)
csv_reader = csv.reader(file_name)
with open('/outputlv/output.csv', 'w') as output_file:
wtr = csv.writer(output_file)
for i in csv_reader:
wtr.writerow(i[0], i[2], i[3])
target_bucket = 'outputlv'
final_file = 'outputlv/output.csv'
s3.put_object(Bucket=target_bucket, Key=final_file)
你为什么不获取内容呢?是否需要使用本地文件
response=s3.get_对象(Bucket=Bucket,Key=Key)
#获取文件内容
内容=响应['Body'].read()
#将文件内容传递给csv阅读器
csv\u reader=csv.reader(内容)
发生了什么错误?非常感谢,我的代码中没有包含文件内容,这是所有错误的根本原因。