Я пытаюсь прочитать содержимое файла CSV, который был загружен в корзину 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')
csvfile = s3.get_object(Bucket=bucket, Key=file_key)
csvcontent = csvfile['Body'].read().split(b'\n')
data = []
with open(csvfile['Body'], 'r') as csv_file:
csv_file = csv.DictReader(csv_file)
data = list(csv_file)
Точная ошибка, которую я получаю в CloudWatch:
[ERROR] TypeError: expected str, bytes or os.PathLike object, not list
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 19, in lambda_handler
with open(csvcontent, 'r') as csv_file:
Может кто-нибудь помочь мне исправить это?Я ценю любую помощь, которую вы можете оказать, поскольку я новичок в lambda