Tôi đang làm một phòng thí nghiệm trên trang web LinuxAcademy.com. Tên Khóa học là Tự động hóa AWS với Lambda, Python và Boto3 và phòng thí nghiệm cụ thể mà tôi đang gặp khó khăn là Bài giảng: Nhập tệp CSV vào DynamoDB .
Trong phòng thí nghiệm này, chúng tôi tải lên tệp .csv vào S3, một sự kiện S3 được tạo trong một nhóm cụ thể, sau đó khởi động hàm Lambda được hiển thị bên dưới. Hàm phân tích cú pháp .csv sau đó tải nội dung lên DynamoDB.
Ban đầu tôi gặp sự cố với Dòng 23:
items = read_csv(download_file)
vì Python không thể xác định download_file. Khi thay đổi thành:
items = read_csv(download_path)
Tôi đã có thể vượt qua lỗi đó.
Bây giờ tôi đang gặp sự cố với Dòng 26:
for item in items:
Lỗi mới cho # 26 từ CloudWatch như sau:
[ERROR] TypeError: 'NoneType' object is not iterable Traceback (most recent call last): File "/var/task/lambda_function.py", line 26, in lambda_handler
for item in items:
Đây là mã:
import csv
import os
import tempfile
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Movies')
s3 = boto3.client('s3')
def lambda_handler(event, context):
for record in event['Records']:
source_bucket = record['s3']['bucket']['name']
key = record['s3']['object']['key']
with tempfile.TemporaryDirectory() as tmpdir:
download_path = os.path.join(tmpdir, key)
s3.download_file(source_bucket, key, download_path)
items = read_csv(download_path)
with table.batch_writer() as batch:
**for item in items:**
batch.put_item(Item=item)
def read_csv(file):
items=[]
with open(file) as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
data = {}
data['Meta'] = {}
data['Year'] = int(row['Year'])
data['Title'] = row['Title'] or none
data['Meta']['Length'] = int(row['Length'] or 0)
#data['Meta']['Length'] = int(row['Length'] or 0)
data['Meta']['Subject'] = row['Subject'] or None
data['Meta']['Actor'] = row['Actor'] or None
data['Meta']['Actress'] = row['Actress'] or None
data['Meta']['Director'] = row['Director'] or None
data['Meta']['Popularity'] = row['Popularity'] or None
data['Meta']['Awards'] = row['Awards'] == 'Yes'
data['Meta']['Image'] = row['Image'] or None
data['Meta'] = {k: v for k,
v in data['Meta'].items() if v is not None}
Tôi bắt đầu nghĩ rằng điều này liên quan đến chức năng không đọc đúng .csv. .Csv là một tệp thử nghiệm nhỏ, nội dung bên dưới.
Year,Length,Title,Subject,Actor,Actress,Director,Popularity,Awards,Image
1990,111,Tie Me Up, Comedy,"Banderas, Antonio","April, Victoria","Al, Pedreo",68,No,NicholasCage.png
1991,112,Tie Me Up2, Comedy2,"Banderas, Antonio2","April, Victoria2","Al, Pedreo2",682,No2,NicholasCage2.png
1993,113,Tie Me Up3, Comedy3,"Banderas, Antonio3","April, Victoria3","Al, Pedreo3",683,No3,NicholasCage3.png
Các read_csv()chức năng không chứa một returntuyên bố.
Do đó dòng này:
items = read_csv(download_path)
không gán bất kỳ giá trị nào cho itemsbiến.
Do đó, nó tạo ra một lỗi trên dòng này:
for item in items:
Trong read_csv()hàm bạn có thể muốn thêm datavào itemssau mỗi hàng và sau đó, ở cuối hàm return items,.
Bạn có thể sử dụng gấu trúc. Sử dụng điều đó sẽ cung cấp khung dữ liệu ua mà bạn có thể lặp qua dễ dàng. Bạn có thể tham khảo liên kết này cho pandas lib. -https://www.datacamp.com/community/tutorials/pandas-read-csv
Jana Duggar đã cởi mở về việc tìm kiếm tình yêu của mình. Đây là tất cả những gì cô ấy nói về chủ đề này và khoảng thời gian 5 năm kết hôn của cô ấy.
Ngôi sao của 'Outlander' Sam Heu Afghanistan gần đây đã tiết lộ những gì anh ấy sẽ làm từ phim trường để tưởng nhớ Jamie Fraser, vai diễn đã đưa anh ấy trở thành một ngôi sao.
"She Loves You" được viết trong một giờ, thu âm trong một ngày và là bài hát của The Beatles với một trong những màn trình diễn xuất sắc nhất trong sự nghiệp của họ.
Dolly Parton và bà Bessie của cô ấy có một mối quan hệ đặc biệt. Bà Parton ốm nặng, nhưng điều đó không ngăn được Dolly chơi khăm bà.
Nguồn gốc của Hồi giáo bắt nguồn từ đầu thế kỷ thứ bảy trên Bán đảo Ả Rập. Hồi giáo khởi nguồn tại thành phố Mecca, nơi một người đàn ông tên là Muhammad, một thương gia thành đạt đến từ một bộ tộc hùng mạnh, đã nhận được sự mặc khải thiêng liêng.
Bạn có thể nghĩ rằng gỗ sồi hoặc gỗ hồ đào rất cứng, nhưng khi nói đến loại gỗ cứng nhất thế giới thì chúng thậm chí còn không có loại nào sánh bằng.
Đại dương tràn ngập vẻ đẹp, nhưng cũng ẩn chứa một số sinh vật biển đáng sợ nhất hành tinh. Nhiều loài trong số này ẩn núp sâu dưới bề mặt đại dương, trong thế giới tối tăm, áp suất cao của biển sâu.
Nếu bạn đang chiến đấu với quái vật hung hãn hoặc chuẩn bị cho các tình huống PvP, việc nắm rõ những phép thuật kiếm tốt nhất trong Minecraft có thể mang lại cho bạn lợi thế lớn. Phép thuật kiếm cho phép bạn gây nhiều sát thương hơn, tăng lượng quái vật rơi ra và kéo dài độ bền của kiếm.
“Những đứa trẻ” tung dàn khách mời tên tuổi và nhiều tin tức chấn động
Chiếc RAV4 này được khẳng định là ở tình trạng tuyệt vời và được chuẩn bị cho một trò chơi ghế âm nhạc.
Cảnh quay từ máy bay không người lái đã ghi lại cảnh lính cứu hỏa dường như đang cố gắng dập tắt ngọn lửa.
Eyes of Wakanda liên kết trực tiếp với MCU, cùng với các cập nhật về X-Men '97, What If..., Daredevil, v.v.
Tổng biên tập lâu năm, người gia nhập tạp chí Vogue Mỹ vào năm 1988, đã công bố tin tức này trong cuộc họp nhân viên vào sáng thứ năm, ngày 26 tháng 6.
Marilyn Monroe đã mặc một chiếc váy trắng nổi tiếng trong bộ phim 'The Seven Year Itch'. Sau đây là mọi thông tin cần biết về chiếc váy và khoảnh khắc mang tính biểu tượng của Monroe trên song sắt tàu điện ngầm.
John Cleese kết hôn với vợ mình, Jennifer Wade, vào năm 2012. Sau đây là mọi thông tin cần biết về vợ của John Cleese, Jennifer Wade.
Patton Oswalt kết hôn với vợ mình, nữ diễn viên Meredith Salenger, vào năm 2017. Sau đây là mọi thông tin cần biết về vợ của Patton Oswalt, Meredith Salenger.
Nó đập vào mắt tôi Đột ngột như nó thường xảy ra Nó lại ở giữa chừng <Không, không phải cái ở Thái Bình Dương đâu bạn màu hạt dẻ, cái ở lễ hội hóa trang> Mọi tiêu đề đều ầm ĩ…..
Vào năm 2022, với việc phát hành GPT-3, kỹ năng viết dường như trở nên ít quan trọng hơn. Với AI, những người viết kém cũng có thể tạo ra đội ngũ nhân viên chất lượng.
Trong thế giới có nhịp độ nhanh và cạnh tranh ngày nay, sự nghiệp của một người đóng một vai trò quan trọng trong sự phát triển cá nhân, ổn định tài chính và sự hài lòng trong cuộc sống nói chung. Tuy nhiên, nhiều cá nhân thấy mình bị mắc kẹt trong một chu kỳ trì trệ và không hài lòng không ngừng, dần dần lãng phí trong cuộc sống nghề nghiệp của họ.
Tuần trước, tôi nhận thấy một thông cáo báo chí, được gửi qua PressGazette (một trang web tin tức truyền thông của Anh). Bài báo thông báo rằng Acast, công ty quảng cáo và lưu trữ podcast của Scandi, sẽ lãnh đạo một tập đoàn gồm các nhà xuất bản “có lẽ là có ảnh hưởng nhất” trong lĩnh vực podcasting.