YAML là ngôn ngữ tuần tự hóa dữ liệu dễ tiêu hóa thường được sử dụng để tạo tệp cấu hình với bất kỳ ngôn ngữ lập trình nào. Nó được thiết kế cho sự tương tác của con người. YAML là một superset nghiêm ngặt của JSON, cũng là ngôn ngữ tuần tự hóa dữ liệu. Vì nó là một superset nghiêm ngặt, nó có thể làm mọi thứ mà JSON có thể và hơn thế nữa
Ưu điểm của việc sử dụng các tệp YAML là chúng có thể di động trên các ngôn ngữ lập trình, mở rộng và hỗ trợ các ký tự Unicode. Nó dễ đọc hơn so với các tệp đánh dấu khác như XML hoặc thậm chí HTML cho vấn đề đó. Nó hỗ trợ nhiều loại dữ liệu, bao gồm bản đồ, danh sách và vô hướng
Quảng cáo
Nhiều lần trong ứng dụng của chúng tôi, chúng tôi sẽ cần ghi tệp YAML vào từ điển python hoặc chuyển đổi tệp YAML thành từ điển trong Python. Chúng ta có thể hoàn thành nhiệm vụ này bằng thư viện pyyaml trong Python
Cài đặt thư viện PyYAML
PyYAML là trình phân tích cú pháp và trình phát YAML cho Python. Chúng tôi sẽ sử dụng thư viện này để phân tích tệp YAML. Bạn có thể cài đặt bằng lệnh sau trên hệ thống windows/linux
CŨNG ĐỌC. Số Python. số nguyên. Trôi nổi. Số phức
cho hệ thống linux
$ sudo pip install pyyaml
Đối với hệ thống cửa sổ
pip install pyyaml
Điều này sẽ tải xuống và cài đặt thư viện python để hoạt động trên các tệp YAML
Tệp YAML mẫu
Đây là một tệp mẫu được lưu dưới dạng exampleyaml. yaml cho cài đặt mạng
Quảng cáo
instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
Các hàm python khác nhau được sử dụng để chuyển đổi tệp YAML thành từ điển
Ở đây, chúng tôi sẽ mở và đọc tệp YAML và tải nó vào từ điển bằng các chức năng của thư viện PyYAML. Chúng tôi sẽ sử dụng các hàm sau để mở và tải tệp YAML
- mở - Chức năng này sẽ mở tệp ở chế độ đọc và lưu trữ dưới dạng luồng
- khoai mỡ. safe_load - Hàm này chuyển đổi tài liệu YAML thành đối tượng Python. Nó sẽ chấp nhận một chuỗi byte, một chuỗi Unicode, một đối tượng tệp nhị phân mở hoặc một đối tượng tệp văn bản mở làm tham số
- khoai mỡ. load_all - Ngoài ra, chúng ta cũng có thể sử dụng hàm load all để tải nhiều tệp yaml cùng nhau
Ngoài ra, có bốn bộ tải có sẵn cho chức năng
pip install pyyaml7 như hình bên dưới
- BaseLoader - Tải tất cả các đại lượng YAML cơ bản dưới dạng Chuỗi
- SafeLoader - Tải tập hợp con của YAML một cách an toàn. Nó chủ yếu được sử dụng nếu đầu vào từ một nguồn không đáng tin cậy
- FullLoader - Tải YAML đầy đủ nhưng tránh thực thi mã tùy ý. Nó sẽ gây rủi ro tiềm ẩn khi được sử dụng cho đầu vào không đáng tin cậy
- UnsafeLoader - Trình tải gốc cho đầu vào không đáng tin cậy và thường được sử dụng để tương thích ngược
CŨNG ĐỌC. Giải pháp Hackerrank. Thay thế Regex trong Python
Ví dụ để chuyển đổi tệp YAML thành từ điển
ví dụ 1. Sử dụng hàm safe_load
Trong ví dụ này, chúng tôi sẽ mở tệp và lưu tệp trong biến luồng. Sau đó, chúng tôi sẽ sử dụng luồng để
pip install pyyaml8 tệp yaml vào đối tượng python.
Đầu tiên, chúng tôi sẽ nhập
pip install pyyaml9 dưới dạng thư viện
instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
0. Sau đó, chúng tôi mở tệp instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
1 bằng hàm instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
2 và sử dụng hàm instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
3. Chúng ta cũng có thể sử dụng hàm instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
4 để tải tệp YAML. Hàm pip install pyyaml8 sẽ ngăn python thực thi bất kỳ mã tùy ý nào trong tệp YAML.
Sau khi tệp được tải, chúng tôi có thể hiển thị hoặc xử lý các giá trị của nó theo yêu cầu của chúng tôi. Tệp YAML được tải hoạt động giống như một đối tượng python và chúng ta có thể tham chiếu các phần tử của nó bằng các phím
pip install pyyaml2
đầu ra
pip install pyyaml3
ví dụ 2. Sử dụng BaseLoader
Tệp dữ liệu có tên là
instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
6Quảng cáo
pip install pyyaml5
Trong ví dụ này, chúng tôi sẽ mở tệp và lưu nó trong biến luồng. Sau đó, chúng tôi sẽ sử dụng
instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
7 để tải tệp yaml vào đối tượng pythonpip install pyyaml7
đầu ra
pip install pyyaml8
CŨNG ĐỌC. Từ điển Python [15 ví dụ đơn giản với cú pháp]
ví dụ 3. Sử dụng SafeLoader
Tệp dữ liệu có tên là
instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
6instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
0Trong ví dụ này, chúng tôi sẽ mở tệp và lưu nó trong biến luồng. Sau đó, chúng tôi sẽ sử dụng
instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
9 để tải tệp yaml vào đối tượng pythoninstance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
2đầu ra
pip install pyyaml0
Ví dụ 4. Sử dụng FullLoader
Tệp dữ liệu có tên là
instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
6Quảng cáo
instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
0Trong ví dụ này, chúng tôi sẽ mở tệp và lưu nó trong biến luồng. Sau đó, chúng ta sẽ sử dụng FullLoader để tải tệp yaml vào đối tượng python
pip install pyyaml2
đầu ra
pip install pyyaml0
CŨNG ĐỌC. Ví dụ về câu lệnh chuyển đổi trường hợp Python [Người mới bắt đầu]
Ví dụ 5. Sử dụng UnsafeLoader
Tệp dữ liệu có tên là
instance:
Id: id2341
environment: us-east
serverId: s1342
awsHostname: 192.168.0.10
serverName: golinuxcloud.com
ipAddr: 192.168.0.1
roles: [webserver,php]
6pip install pyyaml5
Trong ví dụ này, chúng tôi sẽ mở tệp và lưu nó trong biến luồng. Sau đó, chúng tôi sẽ sử dụng
pip install pyyaml22 để tải tệp yaml vào đối tượng python
pip install pyyaml5
đầu ra
pip install pyyaml8
Tóm lược
Kiến thức chuyển đổi file yaml sang từ điển rất hữu ích khi làm việc trên các ứng dụng thời gian thực. Trong nhiều trường hợp, chúng tôi sẽ cần đọc và chuyển đổi tệp yaml thành từ điển để sử dụng các giá trị chính được lưu trữ trong từ điển để sử dụng tiếp. Trong hướng dẫn này, chúng tôi đã đề cập đến các chức năng và ví dụ để chuyển đổi tệp yaml thành từ điển. Chúng tôi đã học chi tiết về điều này với một ví dụ. Nói chung, hướng dẫn này bao gồm mọi thứ bạn cần biết để có cái nhìn rõ ràng về cách chuyển đổi tệp yaml thành từ điển trong Python