Iter_lines Python boto3
Đây là một kịch bản. Có một tệp CSV khổng lồ trên Amazon S3. Chúng ta cần viết một hàm Python tải xuống, đọc và in giá trị trong một cột cụ thể trên đầu ra tiêu chuẩn (thiết bị xuất chuẩn) Show Google đơn giản sẽ dẫn chúng ta đến câu trả lời cho nhiệm vụ này trong Stack Overflow. Mã sẽ trông giống như sau
Chúng ta sẽ tìm hiểu chi tiết giải pháp trên trong bài viết này. Hãy tưởng tượng điều này giống như một chương trình vịt cao su và bạn là vịt cao su trong trường hợp này Đang tải xuống tệp từ S3Bắt đầu nào. Trước tiên, chúng ta cần tìm hiểu cách tải xuống tệp từ S3 bằng Python. SDK AWS chính thức dành cho Python được gọi là Boto3. , chúng ta có thể tạo phiên bản Bây giờ điều mà chúng ta quan tâm là giá trị trả về của lời gọi phương thức. Giá trị trả về là một từ điển Python. Trong khóa Đọc tệp CSVHãy chuyển trọng tâm sang xử lý các tệp CSV. Chúng tôi muốn truy cập từng giá trị của một cột cụ thể. từ thư viện tiêu chuẩn dường như là một ứng cử viên xuất sắc cho công việc này. Nó trả về một (lớp thực hiện các phương thức lặp 1 và 2) mà chúng ta có thể sử dụng để truy cập từng hàng trong vòng lặp for. 3. Nhưng những gì chúng ta nên chuyển vào X như một đối số?
Ở đó chúng ta có thể thấy rằng đối số đầu tiên 4
Thật không may, phương thức 2 không trả về chuỗi mà thay vào đó là byte
Đọc tệp CSV từ S3Vậy làm cách nào để thu hẹp khoảng cách giữa loại 8 yêu cầu? . Vì vậy, dường như là một nơi để bắt đầu
Vì chúng tôi đang làm ngược lại nên chúng tôi đang tìm kiếm một "bộ giải mã", cụ thể là một bộ giải mã có thể xử lý dữ liệu luồng.
9 lấy a làm đối số đầu vào. Trong Python, điều này có nghĩa là đối tượng phải có phương thức client 1. botocore.response.StreamingBody không có phương thức client 1. Vì 9 cũng hỗ trợ giao thức iterator, nên chúng ta có thể truyền đối tượng của thể hiện này vào 0. Mảnh ghép cuối cùng là. Làm thế nào để chúng tôi tạo ra 9? . Chúng tôi chuyển codec mà chúng tôi chọn (trong trường hợp này là client 8) vào client 7, tạo ra_______1_______9. Điều này cho phép chúng tôi đọc từng hàng của tệp CSV vào từ điển bằng cách chuyển boto3.client("s3") 1 vào 0Cảm ơn bạn đã theo dõi phần giải thích dài và chi tiết (có thể quá mệt mỏi) về một chương trình ngắn như vậy. Tôi hy vọng bạn thấy nó hữu dụng. Cảm ơn các bạn đã lắng nghe ❤️ Máy khách boto3 ('S3') là gì?Một trong những thành phần cốt lõi của nó là S3, dịch vụ lưu trữ đối tượng do AWS cung cấp. Với tính khả dụng và độ bền ấn tượng, nó đã trở thành cách tiêu chuẩn để lưu trữ video, hình ảnh và dữ liệu. Bạn có thể kết hợp S3 với các dịch vụ khác để xây dựng các ứng dụng có khả năng mở rộng vô hạn. Boto3 là tên của SDK Python dành cho AWS .
boto3 có sử dụng SSL không?Ứng dụng boto3 bao gồm tham số use_ssl. use_ssl (boolean) -- Có sử dụng SSL hay không. Theo mặc định, SSL được sử dụng . Lưu ý rằng không phải tất cả các dịch vụ đều hỗ trợ kết nối không phải ssl. |