Làm cách nào để chuyển đổi JSON sang YAML Python?

Nhiều công cụ hiện đại, đặc biệt là trong quản lý cấu hình và không gian Cơ sở hạ tầng dưới dạng mã [IaC], sử dụng JSON hoặc tệp để lưu trữ dữ liệu cấu hình. Nếu bạn đang cần chuyển đổi dữ liệu từ định dạng YAML sang JSON thì bài viết này là dành cho bạn

Trong bài viết này, bạn sẽ tìm hiểu một số cách để chuyển đổi dữ liệu YAML sang định dạng JSON, bao gồm tạo tập lệnh trong Python, PowerShell và Go

Có liên quan. PowerShell so với. con trăn. Trận chiến cho các thời đại

điều kiện tiên quyết

Nếu bạn muốn làm theo các ví dụ trong hướng dẫn này, hãy chắc chắn rằng bạn có

  • Trình chỉnh sửa mã. Bài viết này sẽ sử dụng Visual Studio Code phiên bản 1. 55. 1. Vui lòng sử dụng bất kỳ trình chỉnh sửa mã nào bạn muốn

Có liên quan. Những điều bạn cần biết về Visual Studio Code. Hướng dẫn

  • Để bắt đầu chuyển đổi YAML sang JSON, bạn cần có nội dung YAML mẫu. Sao chép nội dung bên dưới vào một tệp mới có tên là hệ điều hành. yml. Lưu tệp YAML trong thư mục làm việc của bạn

operating-systems.yml
Windows 10: 100
Windows Server 2019: 50
Windows Server 2022: 1
MacOS: 3
CentOS: 75
Photon: 12

Sử dụng Python để chuyển đổi YAML thành JSON

Python là một ngôn ngữ tuyệt vời để sử dụng cho tự động hóa. Nhưng bạn có biết rằng bạn có thể mở rộng khả năng của Python và sử dụng nó để chuyển đổi tài liệu từ YAML sang JSON không?

Ví dụ trong phần này yêu cầu bạn phải cài đặt Python 3. 9 và PIP [phiên bản mới nhất tại thời điểm viết bài này là 21. 0. 1]

Thêm hỗ trợ YAML vào Python

Python không có hỗ trợ vượt trội cho YAML. Có nghĩa là Python không thể đọc hoặc giải thích các tài liệu YAML theo mặc định. Để thêm hỗ trợ YAML vào Python, trước tiên bạn phải cài đặt mô-đun PyYAML

Để cài đặt mô-đun PyYAML, bạn cần chạy lệnh

pip install pyyaml
3, đây là trình cài đặt gói cho Python. Để làm đươc như vậy, hãy tuân theo những bước sau

Trước tiên, hãy mở trình thông dịch lệnh ưa thích của bạn, chẳng hạn như dấu nhắc lệnh hoặc PowerShell. Lệnh

pip install pyyaml
4 sẽ hoạt động ở một trong hai. Ví dụ này sử dụng PowerShell

Tiếp theo, chạy lệnh bên dưới trong PowerShell. Lệnh này cài đặt mô-đun PyYAML

pip install pyyaml

Như bạn có thể thấy trong ảnh chụp màn hình bên dưới,

pip install pyyaml
4 đã cài đặt phiên bản mới nhất của PyYAML [5. 4. 1 kể từ khi viết bài này]

Cài đặt mô-đun PyYAML

Viết tập lệnh chuyển đổi

Bây giờ bạn đã cài đặt mô-đun cần thiết [PyYAML], bạn đã sẵn sàng viết tập lệnh chuyển đổi của mình. Để tạo tập lệnh YAML thành JSON Python, hãy làm theo các bước sau

1. Mở trình chỉnh sửa mã của bạn và tạo một tệp mới có tên là convert-os. py trong thư mục làm việc của bạn. Tập tin này là kịch bản của bạn

2. Sao chép mã bên dưới và dán vào hệ điều hành chuyển đổi trống của bạn. tập tin py. Tập lệnh này sẽ đọc nội dung YAML của hệ điều hành. yaml, chuyển đổi nội dung sang định dạng JSON và ghi đầu ra JSON vào hệ điều hành python. tập tin json

## convert-os.py
## Import the modules to handle JSON & YAML
import yaml
import json

## Create a variable to hold the data to import
os_list = {}

## Read the YAML file
with open["c:\temp\operating-systems.yml"] as infile:
     # Marshall the YAML into the variable defined above os_list = yaml.load[infile, Loader=yaml.FullLoader]     # Print the List to the console. print[os_list]
 Open a file to write the JSON output. The 'w' makes the file writable
 with open["c:\temp\python_operating-systems.json", 'w'] as outfile:
     # Marshall the JSON, setting "indent" makes the file more readable json.dump[os_list, outfile, indent=4] print["JSON file written."]

3. Lưu hệ điều hành chuyển đổi. tập lệnh py

Chạy tập lệnh chuyển đổi

Sau khi tạo tập lệnh chuyển đổi, đã đến lúc thử nghiệm tập lệnh đó. Để thực thi tập lệnh YAML thành JSON Python, hãy tiến hành như sau

1. Mở một cửa sổ đầu cuối. Bài viết này sử dụng PowerShell, nhưng dấu nhắc lệnh [CMD] cũng sẽ hoạt động tốt

2. Sao chép lệnh bên dưới, dán vào PowerShell và nhấn Enter. Lệnh này chạy chương trình thực thi

pip install pyyaml
6 để gọi hệ điều hành chuyển đổi. py bạn đã tạo trong phần trước

python c:\temp\convert-os.py

Sau khi chạy lệnh, bạn sẽ thấy một đầu ra tương tự như hình bên dưới. Như bạn có thể thấy, lệnh đã hiển thị đầu ra JSON trên màn hình và lưu đầu ra tương tự vào c. \temp\python_operating-systems. tập tin json

Chạy tập lệnh chuyển đổi YAML sang JSON bằng Python

3. Cuối cùng, mở tệp JSON có tên python_operating-systems. json rằng hệ điều hành chuyển đổi. py Tập lệnh Python nên đã tạo. Trong ví dụ này, để mở tệp trong notepad, hãy chạy lệnh bên dưới trong PowerShell

________số 8

Xem python_operating-systems. tệp json trong notepad

Sử dụng PowerShell để chuyển đổi YAML sang JSON

PowerShell có khả năng sửa đổi các tệp văn bản và chuyển đổi các đối tượng sang một số định dạng bao gồm cả JSON. Vì PowerShell có thể mở rộng nên bạn có thể sử dụng PowerShell để chuyển đổi định dạng YAML sang JSON bằng mô-đun phù hợp

Thêm hỗ trợ YAML vào PowerShell

PowerShell có hỗ trợ tích hợp để xử lý nội dung JSON, nhưng không hỗ trợ YAML. May mắn thay, có một mô-đun mở rộng PowerShell để hỗ trợ các tệp YAML. Mô-đun này được gọi là PowerShell-yaml và phiên bản mới nhất tại thời điểm viết bài này là 0. 4. 2. Làm theo các bước sau để cài đặt mô-đun

1. Trên máy tính của bạn, hãy mở phiên PowerShell

2. Sao chép lệnh bên dưới, dán vào PowerShell và nhấn Enter. Lệnh này sử dụng lệnh ghép ngắn

pip install pyyaml
7 để cài đặt mô-đun PowerShell-yaml

pip install pyyaml
0

3. Sau khi cài đặt mô-đun, hai lệnh ghép ngắn mới sẽ có sẵn trong PowerShell như một phần của mô-đun PowerShell-yaml. Những lệnh ghép ngắn mới này là

pip install pyyaml
8 – lệnh ghép ngắn để chuyển đổi dữ liệu YAML thành bảng băm

pip install pyyaml
9 – lệnh ghép ngắn để chuyển đổi các đối tượng bảng băm thành dữ liệu YAML

Để xác nhận cả hai lệnh ghép ngắn đều khả dụng trong PowerShell, hãy chạy lệnh bên dưới trong PowerShell

pip install pyyaml
3

Như bạn có thể thấy bên dưới, lệnh ghép ngắn

## convert-os.py
## Import the modules to handle JSON & YAML
import yaml
import json

## Create a variable to hold the data to import
os_list = {}

## Read the YAML file
with open["c:\temp\operating-systems.yml"] as infile:
     # Marshall the YAML into the variable defined above os_list = yaml.load[infile, Loader=yaml.FullLoader]     # Print the List to the console. print[os_list]
 Open a file to write the JSON output. The 'w' makes the file writable
 with open["c:\temp\python_operating-systems.json", 'w'] as outfile:
     # Marshall the JSON, setting "indent" makes the file more readable json.dump[os_list, outfile, indent=4] print["JSON file written."]
0 đã liệt kê các lệnh ghép ngắn từ mô-đun PowerShell-yaml

Lấy lệnh ghép ngắn PowerShell-yaml

Viết tập lệnh chuyển đổi

Để tạo tập lệnh PowerShell chuyển đổi YAML sang JSON, hãy làm theo các hướng dẫn sau

1. Mở trình chỉnh sửa mã của bạn và tạo một tệp mới có tên là convert-os. ps1 trong thư mục làm việc của bạn

2. Sao chép mã bên dưới và dán vào hệ điều hành chuyển đổi trống. tập tin ps1. Đoạn mã dưới đây đọc các hệ điều hành. yml và chuyển đổi nó thành JSON. Khi ở dạng JSON, nó sẽ lưu trữ JSON trong tệp PowerShell_operating-systems. json

pip install pyyaml
5

Có liên quan. Nhận nội dung. Đọc tệp văn bản như một ông chủ trong PowerShell

Có liên quan. Tập hợp nội dung. Cách PowerShell để ghi vào tệp

3. Lưu hệ điều hành chuyển đổi. tập tin ps1

Chạy tập lệnh chuyển đổi

Bây giờ bạn đã tạo tập lệnh chuyển đổi của mình, bước tiếp theo là chạy tập lệnh đó để chuyển đổi YAML thành JSON. Để thực thi tập lệnh chuyển đổi PowerShell, hãy làm theo các bước sau

  1. Mở cửa sổ PowerShell nếu bạn chưa mở

2. Sao chép lệnh bên dưới, dán vào PowerShell và nhấn Enter. Lệnh này gọi tập lệnh

## convert-os.py
## Import the modules to handle JSON & YAML
import yaml
import json

## Create a variable to hold the data to import
os_list = {}

## Read the YAML file
with open["c:\temp\operating-systems.yml"] as infile:
     # Marshall the YAML into the variable defined above os_list = yaml.load[infile, Loader=yaml.FullLoader]     # Print the List to the console. print[os_list]
 Open a file to write the JSON output. The 'w' makes the file writable
 with open["c:\temp\python_operating-systems.json", 'w'] as outfile:
     # Marshall the JSON, setting "indent" makes the file more readable json.dump[os_list, outfile, indent=4] print["JSON file written."]
1 mà bạn đã tạo trong phần trước

pip install pyyaml
7

3. Sau khi chạy tập lệnh, hãy mở tệp đầu ra JSON C. \temp\PowerShell_operating-systems. json rằng hệ điều hành chuyển đổi. tập lệnh ps1 được tạo ở bước trước. Để làm như vậy, hãy chạy lệnh bên dưới trong PowerShell để mở PowerShell_operating-systems. json trong sổ tay

pip install pyyaml
8

Xem nội dung của PowerShell_operating-systems. tập tin json

Sử dụng Go để chuyển YAML sang JSON

Python và PowerShell đều là ngôn ngữ cấp cao. Ở cấp độ cao giúp viết kịch bản dễ dàng hơn nhưng cũng lấy đi một chút quyền kiểm soát. Mặt khác, Go là ngôn ngữ cấp thấp nên việc nhập dữ liệu YAML trở nên phức tạp hơn

Ví dụ trong phần này sẽ sử dụng Go. Phiên bản mới nhất tại thời điểm viết bài này là go1. 16. 3. Nếu bạn chưa có Go, hãy tham khảo trang tải xuống và cài đặt để cài đặt nó trên máy tính của bạn

Thêm hỗ trợ YAML để đi

Giống như PowerShell và Python, hỗ trợ JSON là một phần của các thư viện cốt lõi của Go, nhưng YAML thì không. Để thêm hỗ trợ YAML trong Go, bạn cần cài đặt YAML. gói v3 đầu tiên sử dụng lệnh

## convert-os.py
## Import the modules to handle JSON & YAML
import yaml
import json

## Create a variable to hold the data to import
os_list = {}

## Read the YAML file
with open["c:\temp\operating-systems.yml"] as infile:
     # Marshall the YAML into the variable defined above os_list = yaml.load[infile, Loader=yaml.FullLoader]     # Print the List to the console. print[os_list]
 Open a file to write the JSON output. The 'w' makes the file writable
 with open["c:\temp\python_operating-systems.json", 'w'] as outfile:
     # Marshall the JSON, setting "indent" makes the file more readable json.dump[os_list, outfile, indent=4] print["JSON file written."]
2. Để cài đặt YAML. gói v3

Trước tiên, trên máy tính của bạn, hãy mở trình bao lệnh mà bạn muốn sử dụng, chẳng hạn như dấu nhắc lệnh hoặc PowerShell. Ví dụ này sử dụng PowerShell

Tiếp theo, sao chép lệnh bên dưới và chạy nó trong PowerShell. Lệnh này sẽ tải xuống và cài đặt tên gói gopkg. trong/yaml. v3

pip install pyyaml
0

cài đặt yaml. gói v3 trong Go

Viết tập lệnh chuyển đổi

Để tạo tập lệnh Go chuyển đổi YAML sang JSON, hãy làm theo các hướng dẫn sau

1. Mở trình chỉnh sửa mã của bạn và tạo một tệp mới có tên là convert-os. đi vào thư mục làm việc của bạn

2. Sao chép mã bên dưới và dán vào hệ điều hành chuyển đổi trống. đi tập tin. Mã nhập các gói cần thiết, xác định một số cấu trúc bộ nhớ, nhập tệp YAML và chuyển đổi thành JSON trước khi ghi vào tệp JSON có tên c. \temp\go_operating-system. json

pip install pyyaml
1

3. Lưu hệ điều hành chuyển đổi. đi tập tin

Chạy tập lệnh chuyển đổi

Chạy tập lệnh Go sử dụng lệnh

## convert-os.py
## Import the modules to handle JSON & YAML
import yaml
import json

## Create a variable to hold the data to import
os_list = {}

## Read the YAML file
with open["c:\temp\operating-systems.yml"] as infile:
     # Marshall the YAML into the variable defined above os_list = yaml.load[infile, Loader=yaml.FullLoader]     # Print the List to the console. print[os_list]
 Open a file to write the JSON output. The 'w' makes the file writable
 with open["c:\temp\python_operating-systems.json", 'w'] as outfile:
     # Marshall the JSON, setting "indent" makes the file more readable json.dump[os_list, outfile, indent=4] print["JSON file written."]
3 và theo sau là tên tệp của tập lệnh. Để chạy tập lệnh Go chuyển đổi YAML sang JSON, hãy tiến hành như sau

1. Trên máy tính của bạn, hãy mở trình bao lệnh mà bạn muốn sử dụng. Trên Windows,

## convert-os.py
## Import the modules to handle JSON & YAML
import yaml
import json

## Create a variable to hold the data to import
os_list = {}

## Read the YAML file
with open["c:\temp\operating-systems.yml"] as infile:
     # Marshall the YAML into the variable defined above os_list = yaml.load[infile, Loader=yaml.FullLoader]     # Print the List to the console. print[os_list]
 Open a file to write the JSON output. The 'w' makes the file writable
 with open["c:\temp\python_operating-systems.json", 'w'] as outfile:
     # Marshall the JSON, setting "indent" makes the file more readable json.dump[os_list, outfile, indent=4] print["JSON file written."]
4 sẽ hoạt động trên dấu nhắc lệnh hoặc PowerShell. Ví dụ này sử dụng PowerShell để chạy
## convert-os.py
## Import the modules to handle JSON & YAML
import yaml
import json

## Create a variable to hold the data to import
os_list = {}

## Read the YAML file
with open["c:\temp\operating-systems.yml"] as infile:
     # Marshall the YAML into the variable defined above os_list = yaml.load[infile, Loader=yaml.FullLoader]     # Print the List to the console. print[os_list]
 Open a file to write the JSON output. The 'w' makes the file writable
 with open["c:\temp\python_operating-systems.json", 'w'] as outfile:
     # Marshall the JSON, setting "indent" makes the file more readable json.dump[os_list, outfile, indent=4] print["JSON file written."]
4

2. Khi bạn đang ở trong PowerShell, hãy sao chép lệnh bên dưới và chạy nó trong PowerShell. Lệnh này sẽ gọi lệnh

## convert-os.py
## Import the modules to handle JSON & YAML
import yaml
import json

## Create a variable to hold the data to import
os_list = {}

## Read the YAML file
with open["c:\temp\operating-systems.yml"] as infile:
     # Marshall the YAML into the variable defined above os_list = yaml.load[infile, Loader=yaml.FullLoader]     # Print the List to the console. print[os_list]
 Open a file to write the JSON output. The 'w' makes the file writable
 with open["c:\temp\python_operating-systems.json", 'w'] as outfile:
     # Marshall the JSON, setting "indent" makes the file more readable json.dump[os_list, outfile, indent=4] print["JSON file written."]
6 để chạy c. \temp\convert-os. đi kịch bản

pip install pyyaml
2

Chạy tập lệnh Convert-os Go

3. Sau khi chạy tập lệnh, hãy mở tệp đầu ra C. \temp\Go_operating-systems. json rằng hệ điều hành chuyển đổi. đi tập lệnh được tạo ở bước trước. Ví dụ này mở Go_operating-systems. json trong sổ tay

Xem Go_operating-systems. json trong sổ tay

Phần kết luận

Trong bài viết này, bạn đã học cách chuyển đổi tệp và dữ liệu YAML thành JSON bằng tập lệnh trong Python, PowerShell và Go. Bây giờ bạn đã học được các cách khác nhau để chuyển đổi YAML sang JSON, bạn nghĩ mình sẽ sử dụng cách nào nhiều hơn?

Ghét quảng cáo?

Khám phá sách hướng dẫn ATA

Thông tin khác từ ATA Learning & Partners

  • Tài nguyên được đề xuất

    Tài nguyên được đề xuất cho đào tạo, bảo mật thông tin, tự động hóa, v.v.

  • Được trả tiền để viết

    ATA Learning luôn tìm kiếm những người hướng dẫn ở mọi cấp độ kinh nghiệm. Bất kể bạn là quản trị viên cấp dưới hay kiến ​​trúc sư hệ thống, bạn đều có điều gì đó để chia sẻ. Tại sao không viết trên một nền tảng có khán giả hiện có và chia sẻ kiến ​​thức của bạn với mọi người?

  • Sách hướng dẫn học tập ATA

    ATA Learning được biết đến với các hướng dẫn bằng văn bản chất lượng cao dưới dạng các bài đăng trên blog. Hỗ trợ Học tập ATA với sách điện tử PDF Sách hướng dẫn ATA khả dụng ngoại tuyến và không có quảng cáo

    Tôi có thể chuyển đổi JSON sang YAML không?

    Người dùng cũng có thể Chuyển đổi tệp JSON thành YAML bằng cách tải tệp lên . Khi bạn hoàn thành việc chuyển đổi JSON sang YAML. Bạn có thể tải xuống dưới dạng tệp hoặc tạo liên kết và chia sẻ. JSON to YAML Transformer hoạt động tốt trên Windows, MAC, Linux, Chrome, Firefox, Edge và Safari.

    JSON có hợp lệ trong YAML không?

    Có một điều mà hầu hết mọi người có thể không biết đó là YAML là một siêu tập hợp của JSON. Điều này có nghĩa là mọi JSON đều là tệp YAML hợp lệ . YAML chỉ mở rộng cú pháp JSON để cung cấp nhiều tính năng hơn [như nhận xét, v.v.] và các lựa chọn thay thế để biểu thị cùng cấu trúc dữ liệu.

    YAML có thể thay thế JSON không?

    Mặc dù YAML trông khác với JSON nhưng YAML là tập hợp siêu của JSON. Là tập hợp lớn nhất của JSON, tệp YAML hợp lệ có thể chứa JSON . Ngoài ra, JSON cũng có thể chuyển đổi thành YAML. Bản thân YAML cũng có thể chứa JSON trong các tệp cấu hình của nó.

    JSON và YAML có giống nhau không?

    Không giống như JSON, YAML sử dụng các vết lõm giống như trong Python để hiển thị các mức trong dữ liệu . Các cặp khóa/giá trị được phân tách bằng dấu hai chấm và các danh sách bắt đầu bằng dấu gạch nối trong YAML. Và các tệp YAML cũng được viết bằng phần mở rộng YML ở một số nơi và cả hai.

Chủ Đề