STUDENT 'S NAME78
STUDENT 'S NAME79
STUDENT 'S NAME00
STUDENT 'S NAME01
STUDENT 'S NAME02
46
STUDENT 'S NAME04
STUDENT 'S NAME05
46
STUDENT 'S NAME07
Trong hướng dẫn này, chúng tôi sẽ tập trung vào cách đọc bảng tính [excel] trong nhóm AWS S3 bằng Python
Trước khi bạn chuyển sang tập lệnh, vui lòng đảm bảo rằng các điều kiện tiên quyết bên dưới được đáp ứng
- Người dùng IAM được tạo với đủ quyền để đọc nhóm S3
- ACCESS_KEY và SECRET_KEY của người dùng IAM đó được tạo để kết nối với nhóm
- Môi trường Python [Tốt nhất là python3]
Khi bạn đã có tất cả các thông tin trên, hãy chuyển sang bước tiếp theo
Đảm bảo cài đặt boto3 và openpyxl bằng pip/pip3 [tùy thuộc vào thiết lập của bạn]. Giả sử bạn đang sử dụng Python3 hoặc mới nhất
________số 8
Tập lệnh python này sẽ kết nối với nhóm và đọc bảng tính [dữ liệu. xlsx]. Sau đó hiển thị chi tiết trong bảng tính đó dưới dạng đầu ra
Hãy chia nhỏ mã thành nhiều đoạn để xem cách thức hoạt động của từng logic
- Kết nối với S3?
- Chọn trang tính [nếu bảng tính có nhiều tab]?
- Đọc và nhận các hàng cột tối đa từ bảng tính?
- Bỏ qua hàng đầu tiên trong khi đọc?
- Làm cách nào để có được Tập lệnh Python hoàn chỉnh để đọc tệp excel trong nhóm S3?
Làm cách nào để kết nối với S3?
Phần mã bắt đầu kết nối với bộ chứa s3 được hiển thị bên dưới, bạn cần cung cấp Access_key, Secret và tên bộ chứa. Tên bảng tính [đối tượng] chúng ta đang đọc là dữ liệu. xlsx. Vui lòng sửa đổi nó theo yêu cầu của bạn
aws_id = '' aws_secret = '' bucket_name='YOUR_BUCKET' object_key='data.xlsx' s3 = boto3.client['s3', aws_access_key_id=aws_id, aws_secret_access_key=aws_secret] try: obj = s3.get_object[Bucket=bucket_name, Key=object_key] except: print["That key '"+object_key+"' doesn't exist or unable to connect to s3 for some reason"]
Nếu bạn đang gặp lỗi khi kết nối với bộ chứa S3 và muốn in thông báo lỗi chính xác. Hãy thử thay câu lệnh try/except bằng đoạn mã bên dưới cùng với hàm exit[] để thoát khỏi các dòng xử lý sau đó
STUDENT 'S NAME0
Note: I am by default connecting to US-EAST-1 region. If the object resides in a different region make sure you modify boto3.client function with the attribute region_name=””, for example if you want to connect to eu-west-1 then the complete connection statement will be like,
STUDENT 'S NAME1
Làm cách nào để chọn trang tính [nếu bảng tính có nhiều tab]?
Khi kết nối thành công thân biến sẽ có tất cả chi tiết dữ liệu được đọc từ đối tượng S3 [data. xlsx]. Ở đây chúng tôi đang in obj và cũng lấy tên trang tính. Tôi cố tình in biến obj để bạn xem các giá trị được trả về. Nó trả về toàn bộ siêu dữ liệu phản hồi như HTTPStatusCode/HTTPHeaders/Bytes/LastModified thời gian của tệp excel đang được đọc, v.v. ,
STUDENT 'S NAME2
Trang tính hiện tại, quy trình tập lệnh sẽ phụ thuộc vào số lượng Trang tính bạn có trong bảng tính excel ban đầu
Ví dụ: nếu bạn có 2 trang tính có tên là “First” và “Second”, sheet=workbook. active sẽ đọc dữ liệu sheet “Second” theo mặc định trừ khi bạn chọn sheet đầu tiên. Để chọn trang tính có tên “Đầu tiên” thay vì trang tính “Thứ hai” mặc định, sau đó,
STUDENT 'S NAME3
Như bạn có thể thấy ở trên, chúng tôi đang lấy tên trang tính và sau đó chuyển giá trị đầu tiên trong danh sách get_sheet_names[0]. Bạn cũng có thể chuyển tên trang tính một cách rõ ràng thay vì như bên dưới hoặc thậm chí lặp qua danh sách [không hiển thị]
STUDENT 'S NAME4
Làm cách nào để đọc dữ liệu từ bảng tính?
Bước tiếp theo là đọc dữ liệu từ bảng tính excel. Chúng ta cần tìm số cột và hàng tối đa trong bảng tính rồi sử dụng vòng lặp for để đọc cuối cùng
STUDENT 'S NAME5
values_only=True Tham số chỉ trả về dữ liệu thay vì tên ô như Ô A1, Ô B1, Ô B2, v.v. ,
Làm thế nào để bỏ qua hàng đầu tiên trong khi đọc?
Điều này sẽ rất đơn giản, ở đây chúng ta chỉ bỏ qua hàng đầu tiên đôi khi chúng ta không cần tên cột để lấy dữ liệu
STUDENT 'S NAME6
Nếu bạn cho min_row=2, hàng đầu tiên sẽ bị bỏ qua
Làm cách nào để có được tập lệnh Python hoàn chỉnh để đọc tệp excel trong S3?
Đây là mã hoàn chỉnh
Ghi chú. Mã bên dưới đọc trang đầu tiên có tên là First First. Bạn có thể cần sửa đổi tập lệnh này theo yêu cầu của mình, theo các phần thích hợp ở trên