Как прочитать csv-файл из aws s3 в aws lambda

#python #amazon-web-services #amazon-s3 #aws-lambda

Вопрос:

Я новичок в сервисах AWS.Я пытаюсь прочитать csv-файл из корзины AWS S3, но не могу прочитать или получить какие-либо выходные данные из AWS lambda.

 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!')
}
 

Я получаю этот вывод, но я не получаю данные из своей строки печати, почему это так?
пожалуйста, помогите мне!

проблема с aws

вот тестовое событие s3req введите описание изображения здесь

Комментарии:

1. Что такое s3req тестовое событие?

2. Пожалуйста, публикуйте событие не в виде скриншота, а в виде правильно отформатированного блока кода json.

3. Можете ли вы распечатать содержимое data , чтобы посмотреть, содержит ли оно что-нибудь? Все, что напечатано, должно появиться в файле журнала.

Ответ №1:

https://docs.python.org/3/library/csv.html

Согласно документам, я думаю, что вы использовали неправильный способ модуля csv. Таким образом, читатель пуст, и поэтому ваш код ничего не возвращает