#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!')
}
Я получаю этот вывод, но я не получаю данные из своей строки печати, почему это так?
пожалуйста, помогите мне!
Комментарии:
1. Что такое
s3req
тестовое событие?2. Пожалуйста, публикуйте событие не в виде скриншота, а в виде правильно отформатированного блока кода json.
3. Можете ли вы распечатать содержимое
data
, чтобы посмотреть, содержит ли оно что-нибудь? Все, что напечатано, должно появиться в файле журнала.
Ответ №1:
https://docs.python.org/3/library/csv.html
Согласно документам, я думаю, что вы использовали неправильный способ модуля csv. Таким образом, читатель пуст, и поэтому ваш код ничего не возвращает