Hướng dẫn how do i read multiple yaml files in python? - làm cách nào để đọc nhiều tệp yaml trong python?

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).

Hướng dẫn how do i read multiple yaml files in python? - làm cách nào để đọc nhiều tệp yaml trong python?
Python Yaml

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 pyyaml
6 hoặc
! pip install pyyaml

# magic function %pip
% pip install pyyaml
7.

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 pyyaml
8)

# 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 pyyaml
    9 (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 pyyaml

Cá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 pyyaml

Python 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: Dentist 

Chú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 pyyaml
0

Output::

pip install pyyaml
1

Python 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 pyyaml
2

Output::

pip install pyyaml
3

In đẹ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 pyyaml
4

Là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 pyyaml
5

Ứ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 pyyaml
6

Output::

pip install pyyaml
7

Chú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.
pip install pyyaml
8

Output::

pip install pyyaml
9

Mô -đ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.

Thẻ yamlLoại Python
 - 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 pyyaml
03
pip install pyyaml
04
pip install pyyaml
05
________ 96 & nbsp; hoặc & nbsp; ________ 107 & nbsp; (________ 96 & nbsp; trong Python 3)
pip install pyyaml
09
pip install pyyaml
02
pip install pyyaml
11
# 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
Yaml và nó các loại python tương đương

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 pyyaml
0

Mã thông báo

Trong khi phân tích tài liệu YAML bằng phương pháp

pip install pyyaml
13 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 pyyaml
14 vv;

Example::

! pip install pyyaml

# magic function %pip
% pip install pyyaml
1

Output::

! pip install pyyaml

# magic function %pip
% pip install pyyaml
2

Python 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 pyyaml
3

Python 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 pyyaml
15 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 pyyaml
16 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 pyyaml
17, đượ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 pyyaml
4
! pip install pyyaml

# magic function %pip
% pip install pyyaml
5

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.

Yaml đa tài liệu là gì?

Định dạng YAML đa tài liệu YAML cho phép nhiều tài liệu được nhúng trong một tệp.Chúng chỉ phải được phân tách bằng một dòng chứa bộ phân tách ba-dash ---.allows multiple documents to be embedded in a single file. They only have to be separated with a line containing triple-dash separator ---.

Dump Yaml là gì?

Việc bán phá giá YAML chấp nhận đố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.Trong trường hợp này, Yaml.Dump sẽ viết tài liệu YAML được sản xuất vào tệp.Nếu không, Yaml.Dump trả về tài liệu sản xuất.write the produced YAML document into the file. Otherwise, yaml. dump returns the produced document.

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

Mô -đun Pyyaml Chúng tôi có thể dễ dàng chuyển đổi tệp YAML thành từ điển và đọc nội dung của nó.Với sự trợ giúp của mô -đun YAML, chúng ta có thể đọc các tệp YAML Cấu hình phức tạp, tuần tự hóa và dữ liệu YAML tồn tại.Để sử dụng pyyaml, chúng tôi cần cài đặt nó trong hệ thống của chúng tôi.