Hướng dẫn read yaml from s3 python - đọc yaml từ s3 python

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều

importboto3 boto3
bucket="bucket" = "bucket"
s3_client = boto3.client ('s3') = boto3.client('s3')
Trả lời = s3_client.get_object (xô = xô, key = "fileName.yaml") = s3_client.get_object(Bucket=bucket, Key="filename.yaml")
thử::
configfile = yaml.safe_load (phản hồi ["cơ thể"])) = yaml.safe_load(response["Body"])
exceptyaml.yamlerrorasexc: yaml.YAMLError as exc:
returnExc exc

0

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Có cách nào để đọc một tệp yaml nằm trong thư mục con của một thư mục trong thùng S3 mà không lặp lại nội dung không? Một đường dẫn ví dụ cho tệp YAML sẽ trông giống như

response = s3_client.get_object(Bucket=bucket, Key="folder/sub/file.yml")
4. Có một giải pháp cho các tệp yaml trong thùng nhưng không có tùy chọn truy cập các thư mục con

bucket = "bucket"
s3_client = boto3.client('s3')
response = s3_client.get_object(Bucket=bucket, Key="file.yml")
configfile = yaml.safe_load(response["Body"])

hỏi ngày 18 tháng 8 lúc 11:56Aug 18 at 11:56

Hướng dẫn read yaml from s3 python - đọc yaml từ s3 python

Trừ khi tôi hiểu sai câu hỏi của bạn, bạn sẽ chỉ định tất cả các thư mục con trong tham số

response = s3_client.get_object(Bucket=bucket, Key="folder/sub/file.yml")
5:

response = s3_client.get_object(Bucket=bucket, Key="folder/sub/file.yml")

Đã trả lời ngày 18 tháng 8 lúc 12:05Aug 18 at 12:05

Hướng dẫn read yaml from s3 python - đọc yaml từ s3 python

2

Giới thiệu

Trong hướng dẫn này, chúng tôi sẽ học cách sử dụng thư viện YAML trong Python 3. YAML là viết tắt của một ngôn ngữ đánh dấu khác.

Trong những năm gần đây, nó đã trở nên rất phổ biến để sử dụng trong việc lưu trữ dữ liệu theo cách tuần tự hóa cho các tệp cấu hình. Vì YAML về cơ bản là định dạng dữ liệu, thư viện YAML khá ngắn gọn, vì chức năng duy nhất cần thiết của nó là khả năng phân tích các tệp được định dạng YAML.

Trong bài viết này, chúng tôi sẽ bắt đầu bằng cách xem cách dữ liệu được lưu trữ trong tệp YAML, tiếp theo là tải dữ liệu đó vào một đối tượng Python. Cuối cùng, chúng ta sẽ học cách lưu trữ một đối tượng Python trong tệp YAML. Vì vậy, hãy bắt đầu.

Trước khi chúng tôi tiến xa hơn, có một vài điều kiện tiên quyết cho hướng dẫn này. Bạn nên có một sự hiểu biết cơ bản về cú pháp của Python và/hoặc đã thực hiện ít nhất kinh nghiệm lập trình cấp độ mới bắt đầu với một số ngôn ngữ khác. Ngoài ra, hướng dẫn khá đơn giản và dễ theo dõi cho người mới bắt đầu.

Cài đặt

Quá trình cài đặt cho YAML khá thẳng về phía trước. Có hai cách để làm điều đó; Chúng ta sẽ bắt đầu với dễ dàng đầu tiên:

Phương pháp 1: thông qua PIP

Cách dễ nhất để cài đặt thư viện YAML trong Python là thông qua trình quản lý gói PIP. Nếu bạn đã cài đặt PIP trong hệ thống của mình, hãy chạy lệnh sau để tải xuống và cài đặt YAML:

$ pip install pyyaml

Phương pháp 2: Thông qua nguồn

Trong trường hợp bạn chưa cài đặt PIP hoặc đang phải đối mặt với một số vấn đề với phương thức trên, bạn có thể truy cập trang nguồn của thư viện. Tải xuống kho lưu trữ dưới dạng tệp zip, mở dấu nhắc thiết bị đầu cuối hoặc lệnh và điều hướng đến thư mục nơi tải xuống tệp. Khi bạn ở đó, hãy chạy lệnh sau:

$ python setup.py install

Ví dụ về mã YAML

Trong phần này, chúng tôi sẽ tìm hiểu cách xử lý (thao tác) các tệp yaml, bắt đầu bằng cách đọc chúng, tức là cách tải chúng vào tập lệnh Python của chúng tôi để chúng tôi có thể sử dụng chúng theo nhu cầu của chúng tôi. Vì vậy, hãy bắt đầu.

Đọc các tệp yaml trong python

Trong phần này, chúng ta sẽ xem cách đọc các tệp yaml trong Python.

Hãy bắt đầu bằng cách tạo hai tệp được định dạng YAML.

Nội dung của tệp đầu tiên như sau:

# fruits.yaml file

apples: 20
mangoes: 2
bananas: 3
grapes: 100
pineapples: 1

Nội dung của tệp thứ hai như sau:

# categories.yaml file

sports:

  - soccer
  - football
  - basketball
  - cricket
  - hockey
  - table tennis

countries:

  - Pakistan
  - USA
  - India
  - China
  - Germany
  - France
  - Spain

Bạn có thể thấy rằng các tệp

response = s3_client.get_object(Bucket=bucket, Key="folder/sub/file.yml")
6 và
response = s3_client.get_object(Bucket=bucket, Key="folder/sub/file.yml")
7 chứa các loại dữ liệu khác nhau. Cái trước chỉ chứa thông tin về một thực thể, tức là trái cây, trong khi cái sau chứa thông tin về thể thao và quốc gia.

Bây giờ chúng ta hãy thử đọc dữ liệu từ hai tệp mà chúng tôi đã tạo bằng tập lệnh Python. Phương thức

response = s3_client.get_object(Bucket=bucket, Key="folder/sub/file.yml")
8 từ mô -đun
response = s3_client.get_object(Bucket=bucket, Key="folder/sub/file.yml")
9 có thể được sử dụng để đọc các tệp YAML. Nhìn vào kịch bản sau:

# process_yaml.py file

import yaml

with open(r'E:\data\fruits.yaml') as file:
    # The FullLoader parameter handles the conversion from YAML
    # scalar values to Python the dictionary format
    fruits_list = yaml.load(file, Loader=yaml.FullLoader)

    print(fruits_list)

Output:

{ 'apples': 20, 'mangoes': 2, 'bananas': 3, 'grapes': 100, 'pineapples': 1 }

Trong tập lệnh trên, chúng tôi đã chỉ định

$ pip install pyyaml
0 là giá trị cho tham số
$ pip install pyyaml
1 tải toàn bộ ngôn ngữ YAML, tránh thực thi mã tùy ý. Thay vì sử dụng hàm
$ pip install pyyaml
2 và sau đó chuyển
$ pip install pyyaml
0 làm giá trị cho tham số
$ pip install pyyaml
1, bạn cũng có thể sử dụng hàm
$ pip install pyyaml
5, như chúng ta sẽ thấy trong ví dụ tiếp theo.

Bây giờ chúng ta hãy thử và đọc tệp YAML thứ hai theo cách tương tự bằng cách sử dụng tập lệnh Python:

# read_categories.py file

import yaml

with open(r'E:\data\categories.yaml') as file:
    documents = yaml.full_load(file)

    for item, doc in documents.items():
        print(item, ":", doc)

Vì có 2 tài liệu trong tệp

response = s3_client.get_object(Bucket=bucket, Key="folder/sub/file.yml")
7, chúng tôi đã chạy một vòng lặp để đọc cả hai.

Output:

sports : ['soccer', 'football', 'basketball', 'cricket', 'hockey', 'table tennis']
countries : ['Pakistan', 'USA', 'India', 'China', 'Germany', 'France', 'Spain']

Như bạn có thể thấy trong hai ví dụ cuối cùng, thư viện tự động xử lý việc chuyển đổi dữ liệu được định dạng YAML sang từ điển và danh sách Python.

Viết các tệp yaml bằng python

Bây giờ chúng ta đã học được cách chuyển đổi tệp YAML thành từ điển Python, chúng ta hãy cố gắng làm mọi thứ theo cách khác xung quanh tức là tuần tự hóa từ điển Python và lưu trữ nó thành một tệp được định dạng YAML. Với mục đích này, chúng ta hãy sử dụng cùng một từ điển mà chúng ta nhận được làm đầu ra từ chương trình cuối cùng của chúng ta.

response = s3_client.get_object(Bucket=bucket, Key="folder/sub/file.yml")
0

Phương thức

$ pip install pyyaml
7 lấy từ điển Python làm phương thức đầu tiên và một đối tượng tệp làm tham số thứ hai.

Khi mã trên thực thi, một tệp có tên

$ pip install pyyaml
8 sẽ được tạo trong thư mục làm việc hiện tại của bạn.

Kiểm tra hướng dẫn thực hành của chúng tôi, thực tế để học Git, với các thực hành tốt nhất, các tiêu chuẩn được công nghiệp chấp nhận và bao gồm bảng gian lận. Ngừng các lệnh git googling và thực sự tìm hiểu nó!

response = s3_client.get_object(Bucket=bucket, Key="folder/sub/file.yml")
1

Một chức năng hữu ích khác mà thư viện YAML cung cấp cho phương thức

$ pip install pyyaml
7 là tham số
$ python setup.py install
0. Để hiển thị những gì nó làm, hãy áp dụng nó trên tệp đầu tiên của chúng tôi, tức là trái cây.yaml:

response = s3_client.get_object(Bucket=bucket, Key="folder/sub/file.yml")
2

Output:

response = s3_client.get_object(Bucket=bucket, Key="folder/sub/file.yml")
3

Bạn có thể thấy trong đầu ra rằng các loại trái cây đã được sắp xếp theo thứ tự bảng chữ cái.

Sự kết luận

Trong hướng dẫn ngắn gọn này, chúng tôi đã học cách cài đặt Thư viện YAML của Python (Pyyaml) để thao tác các tệp được định dạng YAML. Chúng tôi đã tải nội dung của tệp YAML vào chương trình Python của chúng tôi dưới dạng từ điển, cũng như tuần tự hóa từ điển Python trong các tệp YAML và lưu trữ các khóa của chúng. Thư viện khá ngắn gọn và chỉ cung cấp các chức năng cơ bản.

Làm thế nào Python đọc dữ liệu từ AWS S3?

Cách tải lên và tải xuống các tệp từ AWS S3 bằng Python (2022)..
Bước 1: Thiết lập tài khoản. ....
Bước 2: Tạo người dùng. ....
Bước 3: Tạo một thùng. ....
Bước 4: Tạo chính sách và thêm nó vào người dùng của bạn. ....
Bước 5: Tải xuống AWS CLI và định cấu hình người dùng của bạn. ....
Bước 6: Tải lên các tệp của bạn ..

Làm cách nào để đọc tệp cấu hình yaml trong Python?

Đọc khóa từ tệp cấu hình YAML Chúng ta có thể đọc dữ liệu bằng YAML.Phương thức LOAD () lấy con trỏ tệp và trình tải làm tham số.Fullloader xử lý việc chuyển đổi từ các giá trị vô hướng YAML sang từ điển Python.Chỉ mục [0] được sử dụng để chọn thẻ chúng tôi muốn đọc.using yaml. load() method which takes file pointer and Loader as parameters. FullLoader handles the conversion from YAML scalar values to the Python dictionary. The index [0] is used to select the tag we want to read.

Làm cách nào để đổ tệp yaml trong Python?

Mở tệp Python trống trong trình soạn thảo văn bản và bắt đầu mã trong đó.Chúng tôi thêm đường dẫn Python trong mã này trong dòng đầu tiên.Mã này được bắt đầu với việc nhập đơn giản của kho lưu trữ YAML, để sử dụng các chức năng liên quan đến YAM của YAML trong mã, tức là hàm Dump ().

Làm cách nào để đọc các tệp từ S3 bằng Python AWS Lambda?

Đọc một tệp từ S3 bằng hàm Lambda..
Nhập BOTO3 và tạo máy khách S3.Nhập boto3 s3_client = boto3.client ("s3").
Xác định tên xô.S3_bucket_name = 'bucket_name'.
Xác định Lambda Handler.Viết mã bên dưới trong hàm Lambda và thay thế Object_Key.....
Hoàn thành mã để đọc tệp S3 với AWS Lambda Python ..