Danh sách YAML của Python

Trong bài viết này, chúng ta sẽ tìm hiểu nhiều cách khác nhau để phân tích các tệp YAML trong Python. Chúng tôi sẽ sử dụng một số mô-đun và thư viện tích hợp có sẵn trong Python cũng như một số ví dụ tùy chỉnh có liên quan. Trước tiên, hãy xem nhanh toàn bộ dạng YAML, giới thiệu về YAML, sau đó đọc về các mô-đun phân tích cú pháp khác nhau để đọc tài liệu YAML trong Python

Giới thiệu về YAML

YAML là viết tắt của YAML Ain't Markup Language. Đây là ngôn ngữ tuần tự hóa mà con người có thể đọc được thường được sử dụng cho các tệp cấu hình và mục đích lưu trữ dữ liệu. Phương pháp đọc thông tin từ tệp YAML và phân tích sâu hơn cấu trúc logic của nó được gọi là Phân tích cú pháp. Phân tích tệp YAML bằng Python đọc nội dung của tệp YAML thành Python dưới dạng từ điển. Các tệp YAML có thể có. yml hoặc. yaml làm loại phần mở rộng tệp

Chúng tôi sẽ phân tích cú pháp hai tệp YAML được đề cập trong bài viết này- mục. yaml và dữ liệu. khoai mỡ

//mặt hàng. khoai mỡ

cap: 1
purse: 5
books: 23
case: 2
bottles: 12
pens: 6

//dữ liệu. khoai mỡ

country:
  - Algeria
  - Bangladesh
  - Poland
  - Guinea
  - Denmark
---
company:
  - Getsocio
  - Flyder
  - Powerstorm
  - Indofood

Hãy để chúng tôi thảo luận về nhiều cách khác nhau để phân tích hai tệp YAML ở trên

Phân tích tệp YAML bằng hàm load[]

Ví dụ dưới đây nhập mô-đun yaml của Python. Python cung cấp hàm yaml.load[] để phân tích nội dung của tệp đã cho. Nó chuyển đổi tệp YAML thành đối tượng Python và in nội dung dưới dạng Từ điển Python. Nó là trình phân tích và trình phát YAML được đề xuất cho Python. Tệp được truyền dưới dạng đối số cho hàm. Nó trích xuất dữ liệu bằng cách sử dụng các phương pháp từ điển tiêu chuẩn [dict. phím [], chính tả. giá trị[]]

Thí dụ

Chúng tôi sử dụng nó khi dữ liệu đến từ các nguồn đáng tin cậy. Ngoài ra, nó tránh thực thi mã tùy ý

import yaml

with open['items.yml'] as f:
    dict = yaml.load[f, Loader=yaml.FullLoader]
    print[dict]


{'mũ lưỡi trai'. 1, 'ví'. 5, 'sách'. 23, 'trường hợp'. 2, 'chai'. 12, 'bút'. 6}

Ví dụ2

Điều này hoạt động tương tự như đoạn mã trên nhưng nó chỉ được sử dụng khi dữ liệu đến từ các nguồn không đáng tin cậy

import yaml

with open['items.yml'] as f:
    dict = yaml.load[f, Loader=yaml.SafeLoader]
    print[dict]


{'mũ lưỡi trai'. 1, 'ví'. 5, 'sách'. 23, 'trường hợp'. 2, 'chai'. 12, 'bút'. 6}

Phân tích tệp YAML bằng hàm full_load[]

Ví dụ dưới đây nhập mô-đun yaml của Python. Python cung cấp hàm

country:
  - Algeria
  - Bangladesh
  - Poland
  - Guinea
  - Denmark
---
company:
  - Getsocio
  - Flyder
  - Powerstorm
  - Indofood
1 để phân tích nội dung của tệp đã cho. Nó lấy một tệp làm đối số của nó và trả về nội dung của tệp ở dạng cặp khóa-giá trị

import yaml

with open['items.yml'] as f:
    dict = yaml.full_load[f]
    print[dict]


{'mũ lưỡi trai'. 1, 'ví'. 5, 'sách'. 23, 'trường hợp'. 2, 'chai'. 12, 'bút'. 6}

Phân tích nhiều tài liệu YAML bằng hàm load_all[]

Ví dụ dưới đây nhập mô-đun yaml của Python. Python cung cấp hàm

country:
  - Algeria
  - Bangladesh
  - Poland
  - Guinea
  - Denmark
---
company:
  - Getsocio
  - Flyder
  - Powerstorm
  - Indofood
3 để phân tích nội dung của tệp đã cho. Chức năng này có thể phân tích nhiều tài liệu YAML có trong một tệp như được hiển thị trong dữ liệu. tập tin yaml. Nó in dữ liệu riêng biệt dưới dạng danh sách

import yaml

with open['data.yml'] as f:
    docs = yaml.load_all[f, Loader=yaml.FullLoader]
    for x in docs:
        for k, v in x.items[]:
            print[k, ":", v]


quốc gia. ['Algeria', 'Bangladesh', 'Ba Lan', 'Guinea', 'Đan Mạch']
Công ty. ['Getsocio', 'Flyder', 'Powerstorm', 'Indofood']

Phân tích tệp YAML bằng yaml. safe_load[]

Một cách tiếp cận khác để phân tích cú pháp tệp YAML là sử dụng hàm

country:
  - Algeria
  - Bangladesh
  - Poland
  - Guinea
  - Denmark
---
company:
  - Getsocio
  - Flyder
  - Powerstorm
  - Indofood
4. Nó có thể được sử dụng để tải dữ liệu bởi các nguồn không đáng tin cậy

import yaml

with open['items.yml'] as f:
    dict = yaml.safe_load[f]
    print[dict]


{'mũ lưỡi trai'. 1, 'ví'. 5, 'sách'. 23, 'trường hợp'. 2, 'chai'. 12, 'bút'. 6}

Phần kết luận

Trong bài viết này, chúng ta đã tìm hiểu về tệp YAML và các cách khác nhau để phân tích cú pháp tệp YAML bằng cách sử dụng một số hàm tích hợp sẵn của yaml được Python hỗ trợ, chẳng hạn như

country:
  - Algeria
  - Bangladesh
  - Poland
  - Guinea
  - Denmark
---
company:
  - Getsocio
  - Flyder
  - Powerstorm
  - Indofood
5,
country:
  - Algeria
  - Bangladesh
  - Poland
  - Guinea
  - Denmark
---
company:
  - Getsocio
  - Flyder
  - Powerstorm
  - Indofood
6,
country:
  - Algeria
  - Bangladesh
  - Poland
  - Guinea
  - Denmark
---
company:
  - Getsocio
  - Flyder
  - Powerstorm
  - Indofood
7 và
country:
  - Algeria
  - Bangladesh
  - Poland
  - Guinea
  - Denmark
---
company:
  - Getsocio
  - Flyder
  - Powerstorm
  - Indofood
8. Chúng tôi cũng đã sử dụng một số mã phân tích tùy chỉnh để phân tích các tệp YAML

Làm cách nào để đọc danh sách từ tệp YAML trong Python?

Hàm load[] đã được sử dụng trong tập lệnh để đọc toàn bộ nội dung của ứng dụng khách. tệp yaml . Hàm này sẽ trả về nội dung của tệp là danh sách từ điển python. Tiếp theo, hàm dump[] được sử dụng để chuyển đổi danh sách thành luồng YAML đã được in sau.

PyYAML có được bao gồm trong Python không?

PyYAML là trình phân tích cú pháp YAML và trình phát cho ngôn ngữ lập trình Python .

PyYAML được sử dụng để làm gì?

PyYAML là trình phân tích cú pháp và trình phát YAML cho Python. Khi sử dụng mô-đun PyYAML, chúng tôi có thể thực hiện nhiều hành động khác nhau như đọc và ghi các tệp YAML cấu hình phức tạp, tuần tự hóa và duy trì dữ liệu YMAL . Sử dụng nó để chuyển đổi tệp YAML thành từ điển Python.

Làm cách nào để cài đặt PyYAML trong Python?

Nhập “ pip install pyyaml ​​” [không có dấu ngoặc kép] trong dòng lệnh và nhấn Enter lần nữa . Điều này cài đặt pyyaml ​​cho cài đặt Python mặc định của bạn. Lệnh trước có thể không hoạt động nếu bạn có cả Python phiên bản 2 và 3 trên máy tính của mình. Trong trường hợp này, hãy thử "pip3 install pyyaml" hoặc “ python -m pip install pyyaml ​​“.

Chủ Đề