Làm cách nào để phân tích cú pháp tệp YAML trong 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 tôi có thể phân tích tệp YAML bằng Python?

Chúng tôi có thể đọc tệp YAML bằng cách sử dụng yaml của mô-đun PyYAML. hàm tải[] . Hàm này phân tích cú pháp và chuyển đổi đối tượng YAML thành từ điển Python [ đối tượng dict]. Quá trình này được gọi là Deserializing YAML thành Python.

Làm cách nào để đọc giá trị khóa từ tệp YAML trong Python?

Ví dụ-3. Đọc các khóa và giá trị từ tệp YAML . Vòng lặp 'for' lồng nhau đã được sử dụng để lặp lại toàn bộ nội dung của tệp và in các cặp khóa-giá trị. After loading the file's content into the read_data variable, the item[] function has used to read each key and the corresponding value from the content. The nested 'for' loop has used to iterate the full content of the file and print the key-value pairs.

Trình phân tích cú pháp Python YAML tốt nhất là gì?

Trình phân tích cú pháp YAML của python được sử dụng nhiều nhất là PyYAML , một thư viện cho phép bạn tải, phân tích cú pháp và viết YAML, giống như JSON của Python .

Phân tích cú pháp YAML là gì?

YAML [Yet Another Markup Language] là định dạng tuần tự hóa dữ liệu trong tệp văn bản . Nó tương tự như các định dạng dữ liệu văn bản khác như JSON và XML. YAML được sử dụng rộng rãi để lưu trữ dữ liệu cấu hình cho các ứng dụng phần mềm, hệ thống xây dựng và nền tảng triển khai.

Chủ Đề