Hướng dẫn này sẽ dạy cách làm việc với dữ liệu ymal trong Python bằng mô -đun pyyaml.
Sau khi đọc hướng dẫn này, bạn sẽ học::
- Định dạng dữ liệu YAML
- Cách đọc và viết các tệp yaml trong python bằng mô -đun pyyaml.
- Cách làm việc với mô -đun Pypyml của Python để tuần tự hóa dữ liệu trong các chương trình của bạn thành định dạng YAML.
- Deserialize YAML Stream và chuyển đổi nó thành các đối tượng Python
- Chuyển đổi tệp YAML sang các định dạng thường được sử dụng khác như JSON và XML.
Yaml là gì?
Từ viết tắt của YAML cho ngôn ngữ đánh dấu Ain. YAML là một tiêu chuẩn tuần tự dữ liệu thân thiện với con người cho tất cả các ngôn ngữ lập trình. Tức là, nó được sử dụng rộng rãi để lưu trữ dữ liệu ở định dạng nối tiếp.
Nó ở định dạng đơn giản có thể đọc được cho con người làm cho nó phù hợp với các tệp cấu hình.
Định dạng dữ liệu YAML là một siêu âm của một ngôn ngữ đánh dấu được sử dụng rộng rãi hơn được gọi là JSON (ký hiệu đối tượng JavaScript).
Tệp YAML
Hãy cho chúng tôi xem một tệp YAML mẫu để hiểu các quy tắc cơ bản để tạo tệp trong YAML.
Tệp YAML được lưu với tiện ích mở rộng ! pip install pyyaml # magic function %pip % pip install pyyaml6 hoặc ! pip install pyyaml # magic function %pip % pip install pyyaml7.
Dữ liệu trong YAML chứa các khối với các mục riêng lẻ được lưu trữ dưới dạng cặp giá trị khóa. Một khóa nói chung là chuỗi và giá trị có thể là bất kỳ loại dữ liệu vô hướng nào như chuỗi, số nguyên hoặc danh sách, mảng, v.v .;
Trong hướng dẫn này, chúng tôi sử dụng tệp YAML sau (! pip install pyyaml # magic function %pip % pip install pyyaml8)
# YAML Document starts with --- # Comments start with # - - - UserName: Alicia Password: pinga123 * phone: 3256 TablesList: -EmployeeTable -SoftwaresList -HardwareList ...Hãy để hiểu về tệp YAML này:
- Tài liệu YAML bắt đầu bằng ! pip install pyyaml # magic function %pip % pip install pyyaml9 (Dash hoặc dấu gạch nối) ba lần
- Các giá trị có thể thuộc bất kỳ loại nào; ví dụ: số điện thoại là số và tên người dùng là chuỗi.
- Thắng được sử dụng để chỉ ra việc làm tổ của các vật phẩm bên trong ____ 30.a gạch nối trước mỗi tiểu mục bên trong.
- Nhận xét trong YAML bắt đầu với # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)1.
- Tài liệu YAML kết thúc bằng một # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)2 tùy chọn và chúng tôi có thể có nhiều tài liệu bên trong một tệp YAML.
Ưu điểm của Yaml
- Có thể đọc được: Định dạng tệp YAML không liên quan đến nhiều quy tắc và chỉ sử dụng thụt đơn giản được sử dụng để xác định các khối và tài liệu riêng lẻ.: The YAML file format doesn’t involve many rules, and only simple indentation is used to identify the individual blocks and documents.
- Hỗ trợ trong tất cả các ngôn ngữ lập trình: Tệp YAML được hỗ trợ trong tất cả các ngôn ngữ lập trình. Vì vậy, chúng ta có thể viết bằng một ngôn ngữ và có thể được sử dụng trong các ngôn ngữ khác mà không có bất kỳ sửa đổi nào.: The YAML file is supported in all programming languages. So we can write in one language and can be used in other languages without any modifications.
- Sê -ri đối tượng: Định dạng dữ liệu YAML có thể nối tiếp.: YAML data format is serializable.
Mô -đun pyyaml
Pyyaml là một trình phân tích cú pháp YAML và phát cho Python. Sử dụng mô -đun Pyyaml, chúng ta có thể thực hiện các hành động khác nhau như đọc và viết các tệp YAML phức tạp, tuần tự hóa và dữ liệu YMAL tồn tại.
Sử dụng nó để chuyển đổi tệp YAML thành từ điển Python. Sử dụng mô -đun Pyyaml, chúng tôi có thể nhanh chóng tải tệp YAML và đọc nội dung của nó.
Cài đặt pyyaml
Có hai cách để cài đặt nó trên máy của bạn. Sau đây là những cách:
- Cài đặt bằng lệnh PIP
- Cài đặt thông qua mã nguồn (thông qua tệp zip)
Cách tiếp cận 1: Lệnh PIP
Pyyaml có sẵn trên pypi.org, vì vậy bạn có thể cài đặt nó bằng lệnh PIP.
Mở dấu nhắc lệnh và chạy lệnh pip bên dưới để cài đặt mô -đun Pyyaml
pip install pyyamlCách tiếp cận 2: Cài đặt qua mã nguồn
Nếu PIP không được cài đặt hoặc bạn đối mặt với lỗi bằng lệnh PIP, bạn có thể cài đặt thủ công nó bằng mã nguồn. Thực hiện theo các hướng dẫn dưới đây:
- Kho lưu trữ Pyyaml Github mở
- Nhấp vào phần mã và tải xuống tệp zip
- Giải nén hoặc trích xuất kho lưu trữ zip
- Mở dấu nhắc lệnh hoặc thiết bị đầu cuối
- Thay đổi thư mục pyyaml trong đó tệp zip được trích xuất.
- Chạy lệnh # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)3 để cài đặt pyyaml
Ngoài ra, chúng ta có thể cài đặt pyyaml trong google colab bằng lệnh sau.
! pip install pyyaml # magic function %pip % pip install pyyamlPython Yaml Load - Đọc tệp YAML
Chúng ta có thể đọc tệp YAML bằng hàm Pyyaml Module # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)4. Hàm này phân tích cú pháp và chuyển đổi một đối tượng YAML thành từ điển Python (đối tượng # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)5). Quá trình này được gọi là deserializing yaml thành một con trăn.
Hàm này chấp nhận chuỗi byte, chuỗi unicode, đối tượng tệp nhị phân mở hoặc đối tượng tệp yaml mở làm đối số.
Một tệp hoặc chuỗi byte phải được mã hóa ở các định dạng # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)6 trong đó định dạng mã hóa mặc định là # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)7.
Example::
# import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)Output::
{'Password': 'star123*', 'TablesList': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'UserName': 'Alice', 'phone': 3256}Có bốn trình tải có sẵn cho chức năng # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)8
- Baseloader: Tải tất cả các vô hướng yaml cơ bản như chuỗi: Loads all the basic YAML scalars as Strings
- Safeloader: Tải tập hợp con của YAML một cách an toàn, chủ yếu được sử dụng nếu đầu vào là từ một nguồn không tin cậy.: Loads subset of the YAML safely, mainly used if the input is from an untrusted source.
- Fullloader: Tải toàn bộ YAML nhưng tránh được thực thi mã tùy ý. Vẫn đặt ra một rủi ro tiềm ẩn khi được sử dụng cho đầu vào không tin cậy.: Loads the full YAML but avoids arbitrary code execution. Still poses a potential risk when used for the untrusted input.
- Unsafeloader: Trình tải gốc cho các đầu vào không tin cậy và thường được sử dụng để tương thích ngược.: Original loader for untrusted inputs and generally used for backward compatibility.
Lưu ý: Luôn luôn an toàn khi sử dụng # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)9 với hàm # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)8 khi nguồn của tệp không đáng tin cậy.: It is always safe to use the # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)9 with the # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)8 function when the source of the file is not reliable.
Tải nhiều tài liệu YAML bằng {'Password': 'star123*', 'TablesList': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'UserName': 'Alice', 'phone': 3256} 1
Một tệp yaml duy nhất có thể chứa nhiều hơn một tài liệu. Một tài liệu duy nhất kết thúc với {'Password': 'star123*', 'TablesList': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'UserName': 'Alice', 'phone': 3256} 2 và tài liệu tiếp theo bắt đầu bằng {'Password': 'star123*', 'TablesList': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'UserName': 'Alice', 'phone': 3256} 3. Chúng ta có thể đọc tất cả các tài liệu cùng nhau bằng cách sử dụng hàm {'Password': 'star123*', 'TablesList': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'UserName': 'Alice', 'phone': 3256} 1. Ở đây chúng tôi có tài liệu YAML với hai hồ sơ người dùng.
Hàm {'Password': 'star123*', 'TablesList': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'UserName': 'Alice', 'phone': 3256} 1 phân tích các & nbsp; ____ 46 & nbsp; và trả về một chuỗi các đối tượng python tương ứng với các tài liệu trong luồng.
Example::
import yaml from yaml.loader import SafeLoader with open('Userdetails.yaml', 'r') as f: data = list(yaml.load_all(f, Loader=SafeLoader)) print(data)Output::
[{'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'Password': 'star123*', 'UserName': 'Alice', 'phone': 3256}, {'AccessKeys': ['EmployeeSalary', 'SoftwaresList', 'HardwareList'], 'Password': 'pinga123*', 'UserName': 'Alex', 'phone': 3259}]Ở đây chúng ta có thể thấy rằng mọi tài liệu được tải dưới dạng luồng đối tượng vô hướng và trả về một trình tạo. Nhưng chúng ta có thể đánh máy nó vào một danh sách và in nó.
Tải tài liệu YAML một cách an toàn bằng cách sử dụng {'Password': 'star123*', 'TablesList': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'UserName': 'Alice', 'phone': 3256} 7
Do rủi ro liên quan đến việc tải một tài liệu từ đầu vào không tin cậy, bạn nên sử dụng {'Password': 'star123*', 'TablesList': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'UserName': 'Alice', 'phone': 3256} 8. Điều này tương đương với việc sử dụng {'Password': 'star123*', 'TablesList': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'UserName': 'Alice', 'phone': 3256} 9function với trình tải là # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)9.
________ 51 & nbsp; phân tích lại và trả về một đối tượng Python được xây dựng từ tài liệu đầu tiên trong luồng. ________ 52 & nbsp; chỉ nhận ra các thẻ YAML tiêu chuẩn và không thể xây dựng một đối tượng Python tùy ý.
Tương tự như tùy chọn {'Password': 'star123*', 'TablesList': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'UserName': 'Alice', 'phone': 3256} 7 có sẵn cho # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)8 Có một chức năng gọi là import yaml from yaml.loader import SafeLoader with open('Userdetails.yaml', 'r') as f: data = list(yaml.load_all(f, Loader=SafeLoader)) print(data)5 có sẵn cho {'Password': 'star123*', 'TablesList': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'UserName': 'Alice', 'phone': 3256} 1.
Python Yaml Dump - Viết vào tệp yaml
Hãy cùng xem cách viết các đối tượng Python vào tệp định dạng YAML.
Sử dụng phương pháp Module Pyyaml import yaml from yaml.loader import SafeLoader with open('Userdetails.yaml', 'r') as f: data = list(yaml.load_all(f, Loader=SafeLoader)) print(data)7 để tuần tự hóa một đối tượng Python vào luồng YAML, trong đó đối tượng Python có thể là một từ điển.
Lưu ý: Hàm & nbsp; ____ 58 & nbsp; Chức năng chấp nhận một đối tượng Python và tạo tài liệu YAML.
Hãy cùng xem ví dụ đơn giản để chuyển đổi từ điển Python thành luồng yaml.
Example::
import yaml # dict object members = [{'name': 'Zoey', 'occupation': 'Doctor'}, {'name': 'Zaara', 'occupation': 'Dentist'}] # Convert Python dictionary into a YAML document print(yaml.dump(members))Đầu ra
- name: Zoey occupation: Doctor - name: Zaara occupation: DentistChúng ta có thể chuyển dữ liệu từ mô -đun Python sang tệp YAML bằng phương thức import yaml from yaml.loader import SafeLoader with open('Userdetails.yaml', 'r') as f: data = list(yaml.load_all(f, Loader=SafeLoader)) print(data)9.
Như bạn đã biết, khi ứng dụng xử lý rất nhiều thông tin, nó cần lấy một kết xuất dữ liệu. Sử dụng dump (), chúng ta có thể dịch các đối tượng Python thành định dạng YAML và viết chúng vào các tệp YAML để làm cho chúng kiên trì và sử dụng trong tương lai. Quá trình này được gọi là tuần tự hóa YAML.translate Python objects into YAML format and write them into YAML files to make them persistent and for future use. This process is known as YAML Serialization.
Phương pháp import yaml from yaml.loader import SafeLoader with open('Userdetails.yaml', 'r') as f: data = list(yaml.load_all(f, Loader=SafeLoader)) print(data)7 chấp nhận hai đối số, [{'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'Password': 'star123*', 'UserName': 'Alice', 'phone': 3256}, {'AccessKeys': ['EmployeeSalary', 'SoftwaresList', 'HardwareList'], 'Password': 'pinga123*', 'UserName': 'Alex', 'phone': 3259}] 1 và {'Password': 'star123*', 'TablesList': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'UserName': 'Alice', 'phone': 3256} 6. [{'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'Password': 'star123*', 'UserName': 'Alice', 'phone': 3256}, {'AccessKeys': ['EmployeeSalary', 'SoftwaresList', 'HardwareList'], 'Password': 'pinga123*', 'UserName': 'Alex', 'phone': 3259}] 1 là đối tượng Python sẽ được tuần tự hóa vào luồng YAML.
Đối số tùy chọn thứ hai phải là một văn bản mở hoặc tệp nhị phân. Khi bạn cung cấp đối số thứ hai, nó sẽ viết tài liệu YAML được sản xuất vào tệp. Nếu không, import yaml from yaml.loader import SafeLoader with open('Userdetails.yaml', 'r') as f: data = list(yaml.load_all(f, Loader=SafeLoader)) print(data)7 trả về tài liệu được sản xuất.
Example::
import yaml user_details = {'UserName': 'Alice', 'Password': 'star123*', 'phone': 3256, 'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList']} with open('UserDetails.yaml', 'w') as f: data = yaml.dump(user_details, f, sort_keys=False, default_flow_style=False)Khi các câu lệnh trên được thực thi, tệp YAML sẽ được cập nhật với các chi tiết người dùng mới.
Ngoài ra, bạn có thể sử dụng phương pháp [{'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'Password': 'star123*', 'UserName': 'Alice', 'phone': 3256}, {'AccessKeys': ['EmployeeSalary', 'SoftwaresList', 'HardwareList'], 'Password': 'pinga123*', 'UserName': 'Alex', 'phone': 3259}] 5 trong đó chỉ các thẻ YAML tiêu chuẩn sẽ được tạo và nó sẽ không hỗ trợ các đối tượng Python tùy ý.
Có hai thẻ thường được sử dụng trong [{'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'Password': 'star123*', 'UserName': 'Alice', 'phone': 3256}, {'AccessKeys': ['EmployeeSalary', 'SoftwaresList', 'HardwareList'], 'Password': 'pinga123*', 'UserName': 'Alex', 'phone': 3259}] 6Method:
- [{'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'Password': 'star123*', 'UserName': 'Alice', 'phone': 3256}, {'AccessKeys': ['EmployeeSalary', 'SoftwaresList', 'HardwareList'], 'Password': 'pinga123*', 'UserName': 'Alex', 'phone': 3259}] 7 Thẻ này được sử dụng để hiển thị nội dung của các khối lồng nhau với vết lõm thích hợp. Giá trị mặc định là [{'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'Password': 'star123*', 'UserName': 'Alice', 'phone': 3256}, {'AccessKeys': ['EmployeeSalary', 'SoftwaresList', 'HardwareList'], 'Password': 'pinga123*', 'UserName': 'Alex', 'phone': 3259}] 8. Trong trường hợp đó, các giá trị bên trong các danh sách lồng nhau được hiển thị theo kiểu Flow nhưng đặt thẻ này thành [{'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList'], 'Password': 'star123*', 'UserName': 'Alice', 'phone': 3256}, {'AccessKeys': ['EmployeeSalary', 'SoftwaresList', 'HardwareList'], 'Password': 'pinga123*', 'UserName': 'Alex', 'phone': 3259}] 9 sẽ hiển thị nội dung kiểu khối với sự thụt lề thích hợp.
- import yaml # dict object members = [{'name': 'Zoey', 'occupation': 'Doctor'}, {'name': 'Zaara', 'occupation': 'Dentist'}] # Convert Python dictionary into a YAML document print(yaml.dump(members))0 Thẻ này được sử dụng để sắp xếp các khóa theo thứ tự bảng chữ cái. Giá trị mặc định là true. Bằng cách đặt giá trị thẻ Tag là sai, chúng ta có thể duy trì thứ tự chèn.
Hộp nhiều tài liệu YAML
Bạn cũng có thể gửi một số tài liệu YAML vào một luồng duy nhất bằng hàm import yaml # dict object members = [{'name': 'Zoey', 'occupation': 'Doctor'}, {'name': 'Zaara', 'occupation': 'Dentist'}] # Convert Python dictionary into a YAML document print(yaml.dump(members))1. Dump_all chấp nhận một danh sách hoặc một trình tạo tạo các đối tượng Python được tuần tự hóa thành một tài liệu YAML. Đối số tùy chọn thứ hai là một tệp mở.
Example::
pip install pyyaml0Output::
pip install pyyaml1Python Yaml Sắp xếp các phím
Sử dụng đối số từ khóa import yaml # dict object members = [{'name': 'Zoey', 'occupation': 'Doctor'}, {'name': 'Zaara', 'occupation': 'Dentist'}] # Convert Python dictionary into a YAML document print(yaml.dump(members))2, bạn có thể sắp xếp tất cả các khóa của tài liệu YAML theo thứ tự bảng chữ cái. Đặt import yaml # dict object members = [{'name': 'Zoey', 'occupation': 'Doctor'}, {'name': 'Zaara', 'occupation': 'Dentist'}] # Convert Python dictionary into a YAML document print(yaml.dump(members))3.
Example::
pip install pyyaml2Output::
pip install pyyaml3In đẹp tệp yaml
Chúng ta có thể định dạng tệp YAML trong khi viết các tài liệu YAML trong đó. Dump hỗ trợ một số đối số từ khóa chỉ định chi tiết định dạng cho bộ phát. Chẳng hạn, bạn có thể đặt thụt và chiều rộng ưa thích.
Parameter::
- import yaml # dict object members = [{'name': 'Zoey', 'occupation': 'Doctor'}, {'name': 'Zaara', 'occupation': 'Dentist'}] # Convert Python dictionary into a YAML document print(yaml.dump(members))4: Để đặt vết lõm ưa thích
- import yaml # dict object members = [{'name': 'Zoey', 'occupation': 'Doctor'}, {'name': 'Zaara', 'occupation': 'Dentist'}] # Convert Python dictionary into a YAML document print(yaml.dump(members))5: Để đặt chiều rộng ưa thích
- import yaml # dict object members = [{'name': 'Zoey', 'occupation': 'Doctor'}, {'name': 'Zaara', 'occupation': 'Dentist'}] # Convert Python dictionary into a YAML document print(yaml.dump(members))6: Để buộc phong cách ưa thích cho vô hướng và bộ sưu tập.
Example::
pip install pyyaml4Làm cho lớp python tùy chỉnh yaml serializable
Sử dụng mô-đun Pyyaml, bạn có thể chuyển đổi YAML thành đối tượng Python tùy chỉnh thay vì từ điển hoặc các loại tích hợp. tức là, pyyaml cho phép bạn đọc một tệp yaml vào bất kỳ đối tượng python tùy chỉnh nào.
Ngoài ra, bạn có thể đổ các trường hợp của các lớp Python tùy chỉnh vào luồng YAML.
Example::
pip install pyyaml5Ứng dụng đơn giản sử dụng pyyaml
Hãy để tạo một ứng dụng mẫu bằng pyyaml nơi chúng tôi sẽ tải tệp import yaml # dict object members = [{'name': 'Zoey', 'occupation': 'Doctor'}, {'name': 'Zaara', 'occupation': 'Dentist'}] # Convert Python dictionary into a YAML document print(yaml.dump(members))7 mà chúng tôi đã tạo và sau đó truy cập danh sách các bảng cho người dùng cụ thể đó.
Chúng tôi sẽ sử dụng hàm # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)8 với trình tải là # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)9 và sau đó truy cập các giá trị bằng các khóa.
pip install pyyaml6Output::
pip install pyyaml7Chúng tôi có thể thêm các thẻ dành riêng cho ứng dụng và gán các giá trị mặc định cho một số thẻ nhất định trong khi phân tích tệp YAML bằng cách sử dụng - name: Zoey occupation: Doctor - name: Zaara occupation: Dentist 0
Các bước liên quan là:
- Xác định chức năng cấu trúc tùy chỉnh bằng cách truyền trình tải và nút YAML.
- Gọi phương thức - name: Zoey occupation: Doctor - name: Zaara occupation: Dentist 1, sẽ tạo từ điển Python tương ứng với nút YAML. Phương pháp này sẽ trả về một hàm tạo với từ điển.
- Hàm tạo này sẽ được chuyển sang phương thức - name: Zoey occupation: Doctor - name: Zaara occupation: Dentist 2 chuyển đổi một nút của biểu đồ biểu diễn YAML thành đối tượng Python gốc. Một hàm tạo chấp nhận một thể hiện của & nbsp; trình tải & nbsp; và một nút và trả về một đối tượng python.
- Bây giờ trong khi gọi # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)8 phương thức, chúng ta có thể vượt qua nhiều trường theo yêu cầu với cùng một thẻ tùy chỉnh được xác định trong - name: Zoey occupation: Doctor - name: Zaara occupation: Dentist 2 và các trường không có giá trị sẽ được gán các giá trị mặc định được xác định trong - name: Zoey occupation: Doctor - name: Zaara occupation: Dentist 5Method.
Output::
pip install pyyaml9Mô -đun Pyyaml sử dụng bảng chuyển đổi sau để chuyển đổi các đối tượng Python thành tương đương YAML. Phương thức import yaml from yaml.loader import SafeLoader with open('Userdetails.yaml', 'r') as f: data = list(yaml.load_all(f, Loader=SafeLoader)) print(data)7 thực hiện các bản dịch khi mã hóa.
- name: Zoey occupation: Doctor - name: Zaara occupation: Dentist 7 | - name: Zoey occupation: Doctor - name: Zaara occupation: Dentist 8 |
- name: Zoey occupation: Doctor - name: Zaara occupation: Dentist 9 | import yaml user_details = {'UserName': 'Alice', 'Password': 'star123*', 'phone': 3256, 'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList']} with open('UserDetails.yaml', 'w') as f: data = yaml.dump(user_details, f, sort_keys=False, default_flow_style=False)0 |
import yaml user_details = {'UserName': 'Alice', 'Password': 'star123*', 'phone': 3256, 'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList']} with open('UserDetails.yaml', 'w') as f: data = yaml.dump(user_details, f, sort_keys=False, default_flow_style=False)1 | import yaml user_details = {'UserName': 'Alice', 'Password': 'star123*', 'phone': 3256, 'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList']} with open('UserDetails.yaml', 'w') as f: data = yaml.dump(user_details, f, sort_keys=False, default_flow_style=False)2 |
import yaml user_details = {'UserName': 'Alice', 'Password': 'star123*', 'phone': 3256, 'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList']} with open('UserDetails.yaml', 'w') as f: data = yaml.dump(user_details, f, sort_keys=False, default_flow_style=False)3 | import yaml user_details = {'UserName': 'Alice', 'Password': 'star123*', 'phone': 3256, 'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList']} with open('UserDetails.yaml', 'w') as f: data = yaml.dump(user_details, f, sort_keys=False, default_flow_style=False)4 |
import yaml user_details = {'UserName': 'Alice', 'Password': 'star123*', 'phone': 3256, 'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList']} with open('UserDetails.yaml', 'w') as f: data = yaml.dump(user_details, f, sort_keys=False, default_flow_style=False)5 | ________ 96 & nbsp; (________ 97 & nbsp; trong Python 3) |
import yaml user_details = {'UserName': 'Alice', 'Password': 'star123*', 'phone': 3256, 'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList']} with open('UserDetails.yaml', 'w') as f: data = yaml.dump(user_details, f, sort_keys=False, default_flow_style=False)8 | import yaml user_details = {'UserName': 'Alice', 'Password': 'star123*', 'phone': 3256, 'AccessKeys': ['EmployeeTable', 'SoftwaresList', 'HardwareList']} with open('UserDetails.yaml', 'w') as f: data = yaml.dump(user_details, f, sort_keys=False, default_flow_style=False)9 |
________ 100, & nbsp; ________ 101 | ________ 102 & nbsp; của các cặp |
pip install pyyaml03 | pip install pyyaml04 |
pip install pyyaml05 | ________ 96 & nbsp; hoặc & nbsp; ________ 107 & nbsp; (________ 96 & nbsp; trong Python 3) |
pip install pyyaml09 | pip install pyyaml02 |
pip install pyyaml11 | # import pyyaml module import yaml from yaml.loader import SafeLoader # Open the file and load the file with open('Userdetails.yaml') as f: data = yaml.load(f, Loader=SafeLoader) print(data)5 |
Lỗi yaml
Bất cứ khi nào trình phân tích cú pháp YAML gặp phải tình trạng lỗi, nó sẽ đặt ra một ngoại lệ: Yamlerror hoặc lớp con của nó. Sử dụng lỗi này, chúng ta có thể gỡ lỗi vấn đề. Vì vậy, việc viết mã tuần tự hóa YAML của bạn trong khối Except của bạn là tốt.
Example::
! pip install pyyaml # magic function %pip % pip install pyyaml0Mã thông báo
Trong khi phân tích tài liệu YAML bằng phương pháp pip install pyyaml13 tạo ra một bộ mã thông báo thường được sử dụng trong các ứng dụng cấp thấp như làm nổi bật cú pháp.
Một số mã thông báo phổ biến là pip install pyyaml14 vv;
Example::
! pip install pyyaml # magic function %pip % pip install pyyaml1Output::
! pip install pyyaml # magic function %pip % pip install pyyaml2Python yaml to json
Mặc dù YAML được coi là superset của JSON (ký hiệu đối tượng JavaScript), nhưng thường bắt buộc các nội dung ở một định dạng có thể được chuyển đổi sang một định dạng khác. Chúng ta có thể chuyển đổi tệp YAML thành tệp JSON bằng phương thức Dump () trong mô -đun Python JSON.
Trước tiên chúng ta cần mở tệp YAML ở chế độ đọc và sau đó đổ nội dung vào tệp JSON.
! pip install pyyaml # magic function %pip % pip install pyyaml3Python yaml đến xml
XML (Ngôn ngữ đánh dấu mở rộng) là ngôn ngữ đánh dấu sử dụng các thẻ HTML để xác định mọi bản ghi. Có thể chuyển đổi dữ liệu ở định dạng XML thành YAML bằng mô -đun XMLPLAIN.
pip install pyyaml15 Nó được sử dụng để tạo OBJ đồng bằng XML từ luồng hoặc chuỗi YAML. Dữ liệu được đọc từ luồng YAML được lưu trữ dưới dạng pip install pyyaml16 sao cho các phần tử đối tượng đồng bằng XML được giữ theo thứ tự.
Đối tượng đồng bằng này được đưa ra làm đầu vào cho phương thức pip install pyyaml17, được sử dụng để tạo đầu ra XML từ đối tượng Plain.
Chúng ta hãy xem xét tệp YAML với chi tiết nhân viên và mã để chuyển đổi nó thành tệp XML.
! pip install pyyaml # magic function %pip % pip install pyyaml4! pip install pyyaml # magic function %pip % pip install pyyaml5