YAML là định dạng tuần tự hóa dữ liệu được thiết kế để con người có thể đọc và tương tác với các ngôn ngữ kịch bản. PyYAML là trình phân tích cú pháp và trình phát YAML cho Python
PyYAML có YAML 1 hoàn chỉnh. 1, hỗ trợ Unicode, hỗ trợ dưa chua, API mở rộng có khả năng và thông báo lỗi hợp lý. PyYAML hỗ trợ các thẻ YAML tiêu chuẩn và cung cấp các thẻ dành riêng cho Python cho phép đại diện cho một đối tượng Python tùy ý
PyYAML có thể áp dụng cho nhiều loại tác vụ từ các tệp cấu hình phức tạp đến tuần tự hóa đối tượng và tính bền vững
YAML [YAML Ain't Markup Language] là ngôn ngữ tuần tự hóa dữ liệu mà con người có thể đọc được. Nó thường được sử dụng cho các tệp cấu hình, nhưng nó cũng được sử dụng trong lưu trữ dữ liệu [e. g. đầu ra gỡ lỗi] hoặc truyền [e. g. tiêu đề tài liệu]
YAML vốn hỗ trợ ba loại dữ liệu cơ bản. vô hướng [chẳng hạn như chuỗi, số nguyên và số float], danh sách và mảng kết hợp
Phần mở rộng tên tệp được đề xuất chính thức cho các tệp YAML là
raincoat: 1 coins: 5 books: 23 spectacles: 2 chairs: 12 pens: 65. Có hai mô-đun trong Python cho YAML. PyYAML và ruamel. khoai mỡ. Trong hướng dẫn này, chúng tôi sử dụng cái cũ
PyYAML
PyYAML là trình phân tích cú pháp và trình phát YAML cho Python
$ pip install pyyaml
Mô-đun được cài đặt với pip
Trong hướng dẫn này, chúng tôi sử dụng các tệp YAML sau
raincoat: 1 coins: 5 books: 23 spectacles: 2 chairs: 12 pens: 6
Chúng tôi có một vài giá trị vô hướng
cities: - Bratislava - Kosice - Trnava - Moldava - Trencin --- companies: - Eset - Slovnaft - Duslo Sala - Matador Puchov
Chúng tôi có hai tài liệu trong
raincoat: 1 coins: 5 books: 23 spectacles: 2 chairs: 12 pens: 66. Tài liệu được phân tách bằng
raincoat: 1 coins: 5 books: 23 spectacles: 2 chairs: 12 pens: 67
Python YAML đọc
Trong ví dụ đầu tiên, chúng tôi đọc tệp YAML
#!/usr/bin/python import yaml with open['items.yaml'] as f: data = yaml.load[f, Loader=yaml.FullLoader] print[data]
Chúng tôi mở tệp
raincoat: 1 coins: 5 books: 23 spectacles: 2 chairs: 12 pens: 68 và tải nội dung bằng phương pháp
raincoat: 1 coins: 5 books: 23 spectacles: 2 chairs: 12 pens: 69. Dữ liệu được in ra bàn điều khiển
$ python read_yaml.py {'raincoat': 1, 'coins': 5, 'books': 23, 'spectacles': 2, 'chairs': 12, 'pens': 6}
Mô-đun PyYAML chuyển đổi các giá trị vô hướng thành từ điển Python
Nhiều tài liệu YAML được đọc với
cities: - Bratislava - Kosice - Trnava - Moldava - Trencin --- companies: - Eset - Slovnaft - Duslo Sala - Matador Puchov0
$ pip install pyyaml1
Ví dụ đọc cả hai tài liệu từ tệp
raincoat: 1 coins: 5 books: 23 spectacles: 2 chairs: 12 pens: 66
$ pip install pyyaml3
Kết xuất YAML của Python
Phương thức
cities: - Bratislava - Kosice - Trnava - Moldava - Trencin --- companies: - Eset - Slovnaft - Duslo Sala - Matador Puchov2 tuần tự hóa một đối tượng Python thành luồng YAML
$ pip install pyyaml5
Trong ví dụ, chúng tôi có một danh sách các từ điển. Chúng tôi tuần tự hóa danh sách thành định dạng YAML bằng phương pháp
cities: - Bratislava - Kosice - Trnava - Moldava - Trencin --- companies: - Eset - Slovnaft - Duslo Sala - Matador Puchov2
$ pip install pyyaml7
Ví dụ sau ghi dữ liệu Python vào tệp YAML
$ pip install pyyaml8
Ví dụ ghi danh sách từ điển vào tệp
cities: - Bratislava - Kosice - Trnava - Moldava - Trencin --- companies: - Eset - Slovnaft - Duslo Sala - Matador Puchov4
raincoat: 1 coins: 5 books: 23 spectacles: 2 chairs: 12 pens: 60
Chúng tôi viết dữ liệu bằng phương pháp
cities: - Bratislava - Kosice - Trnava - Moldava - Trencin --- companies: - Eset - Slovnaft - Duslo Sala - Matador Puchov2. Tham số đầu tiên là dữ liệu, tham số thứ hai là đối tượng tệp
Các phím sắp xếp Python YAML
Chúng ta có thể sắp xếp các khóa với tham số
cities: - Bratislava - Kosice - Trnava - Moldava - Trencin --- companies: - Eset - Slovnaft - Duslo Sala - Matador Puchov6
cities: - Bratislava - Kosice - Trnava - Moldava - Trencin --- companies: - Eset - Slovnaft - Duslo Sala - Matador Puchov7
raincoat: 1 coins: 5 books: 23 spectacles: 2 chairs: 12 pens: 61
Ví dụ đọc dữ liệu từ tệp
raincoat: 1 coins: 5 books: 23 spectacles: 2 chairs: 12 pens: 68 và sắp xếp dữ liệu theo các khóa trong đầu ra YAML
raincoat: 1 coins: 5 books: 23 spectacles: 2 chairs: 12 pens: 62
Chúng tôi có thể làm việc với API cấp thấp hơn khi phân tích tệp YAML. Phương pháp
cities: - Bratislava - Kosice - Trnava - Moldava - Trencin --- companies: - Eset - Slovnaft - Duslo Sala - Matador Puchov9 quét luồng YAML và tạo mã thông báo quét