Hướng dẫn what is yaml and python? - yaml và python là gì?

Ngôn ngữ đánh dấu YAML AIN (YAML) là ngôn ngữ tuần tự hóa dữ liệu cho hầu hết các ngôn ngữ lập trình. Hãy để hiểu chi tiết.is a data serialization language for most programming languages. Let’s understand in detail.

Yaml Một siêu sao nghiêm ngặt của JSON, vì vậy bất cứ điều gì được viết bằng JSON đều có thể được phân tích cú pháp cho Yaml. Nó chủ yếu được sử dụng cho các tệp cấu hình trong các dự án và nó rất dễ hiểu và đọc mã. a strict superset of JSON, so anything written in JSON can be parsed to YAML. It’s mostly used for configuration files in projects and it’s super easy to understand and read the code.

Tiện ích mở rộng tệp cho các tệp yaml là

Key: Value
integer: 123
float: 123.123
exponential_float: 1340.0
0 hoặc
Key: Value
integer: 123
float: 123.123
exponential_float: 1340.0
1

Trong hướng dẫn này, chúng tôi sẽ tìm hiểu về các loại dữ liệu khác nhau có trong YAML và làm việc với YAML trong Python. Đến cuối hướng dẫn này, bạn sẽ có thể hiểu YAML và cú pháp của nó.

Tôi cho rằng bạn đã quen thuộc với Python nếu không kiểm tra tài nguyên học tập Python.

YAML theo cú pháp thụt tương tự như Python. Nhưng, nó không cho phép tab (hãy nhớ nó trong khi viết các tệp yaml) để thụt vào.tab (remember it while writing YAML files) for indentation.

Thành lập

  • Cài đặt một mô -đun Python có tên là ________ 32 & nbsp; để làm việc với các tệp yaml.YAML files.
pip install pyyaml
  • Sao chép và dán mã sau vào tệp và lưu nó dưới dạng
    Key: Value
    integer: 123
    float: 123.123
    exponential_float: 1340.0
    3
import yaml

yaml_file = open("learn_yaml.yaml", 'r')
yaml_content = yaml.load(yaml_file)

print("Key: Value")
for key, value in yaml_content.items():
    print(f"{key}: {value}")
  • Chúng tôi sẽ sử dụng tập lệnh trên để chuyển đổi mã YAML thành Python và kiểm tra các loại dữ liệu khác nhau.
  • Tạo một tệp có tên
    Key: Value
    integer: 123
    float: 123.123
    exponential_float: 1340.0
    4 và thực hành các ví dụ khác nhau trong đó, mà chúng ta sẽ thảo luận trong hướng dẫn này.

Không cần phải quảng cáo thêm nữa, hãy để nhảy vào phần các kiểu dữ liệu của YAML.

Kiểu dữ liệu trong yaml

Tất cả mọi thứ trong yaml & nbsp; là một cặp giá trị khóa.YAML is a key-value pair.

Chúng tôi có một tên khác nhau cho các cặp giá trị khóa trong các ngôn ngữ lập trình khác nhau như từ điển, băm, đối tượng, v.v., đây là các khối xây dựng của YAML.

Các phím có thể là các chuỗi (được trích dẫn hoặc bình thường), phao hoặc số nguyên (hỗ trợ có thể thay đổi trong bản cập nhật trong tương lai). Và các giá trị có thể thuộc bất kỳ loại dữ liệu nào mà YAML hỗ trợ.

Hãy cùng xem các loại dữ liệu khác nhau trình bày trong YAML.

Số

YAML hỗ trợ số nguyên, số nổi và số nổi theo cấp số nhân.supports integers, floating numbers, and exponential floating numbers.

integer: 123
float: 123.123
exponential_float: 1.34e+3

Khi bạn đánh giá mã trên với tập lệnh Python, bạn sẽ nhận được kết quả như sau.

Key: Value
integer: 123
float: 123.123
exponential_float: 1340.0

Chúng ta có thể đại diện cho các giá trị trong các hệ thống số khác nhau như thập phân, bát phân và thập lục phân.decimal, octal, and hexadecimal.

  • Số 0 (0) hàng đầu đại diện cho nó một số bát phân.zero(0) represents it’s an octal number.
  • Tiền tố 0x đại diện cho giá trị thập lục phân của nó.0x represents its hexadecimal value.

Xem ví dụ dưới đây.

integer: 123
octal: 0123
hexa: 0x123

Chúng ta có thể thấy các giá trị thập phân được chuyển đổi của giá trị bát phân và thập lục phân bằng cách chạy tập lệnh Python của chúng ta. Bạn sẽ thấy đầu ra chính xác như sau.

Key: Value
integer: 123
octal: 83
hexa: 291

Một điều thú vị khác về YAML là chúng ta có thể đại diện cho NAN (không phải là một số) và vô cùng.NAN(Not A Number) and Infinity.

not_a_number: .NAN
infinity: .inf
negative_infinity: -.inf

Chạy tập lệnh Python, bạn sẽ thấy các giá trị được chuyển đổi của NAN và INF thành Python.NAN, and inf to Python.

Key: Value
not_a_number: nan
infinity: inf
negative_infinity: -inf

Đó là nó cho các loại số trong yaml.

Dây

Chuỗi trong YAML có thể được biểu diễn có hoặc không có báo giá. Cả hai đều giống nhau. Không giống như JSON, không có quy tắc nghiêm ngặt nào để đặt mỗi chuỗi vào báo giá. Nhưng, nếu chúng ta cần sử dụng các chuỗi thoát, thì chúng ta phải sử dụng các trích dẫn kép.with or without quotes. Both are similar. Unlike JSON there is no strict rule to put every string in quotes. But, if we need to use the escape sequences, then we must use double-quotes.

Hãy cùng xem một số ví dụ về chuỗi.

string: Hi, there I am a string
string with escape character: Hi, I am a newline \n character. And I am not working :(
string with working escape character: "Hi, I am a newline \n character. And I am working :)"

Nhân vật Newline trong cặp có giá trị khóa hoạt động như mong đợi. Như chúng tôi đã nói, chúng tôi cần sử dụng trích dẫn kép để làm việc với các chuỗi thoát.

Chúng tôi đã sử dụng trích dẫn kép trong cặp giá trị khóa tiếp theo và nó hoạt động như mong đợi. Giải thích mã YAML ở trên với tập lệnh Python của chúng tôi. Bạn sẽ nhận được kết quả như sau.

Key: Value
string: Hi, there I am a string
string with escape character: Hi, I am a newline \n character. And I am not working :(
string with working escape character: Hi, I am a newline 
character. And I am working :)

Có hai ký tự đặc biệt trong YAML mà chúng ta có thể sử dụng để viết nhiều câu làm giá trị cho một khóa. Hãy nói rằng chúng ta phải chia một câu dài thành nhiều dòng. Trong loại kịch bản này, chúng ta có thể sử dụng ký tự nếp gấp (lớn hơn>) hoặc khối (ống |) để viết nhiều dòng.fold (greater than >) or block (pipe |) character to write multiple lines.

Điều gì khác biệt giữa các ký tự gấp và khối? Đến với nó.fold and block characters? Coming to it.

Nhân vật gấp giành được giải thích các dòng Newlines, trong khi ký tự khối.character won’t interpret the newlines, whereas block character does.

Hãy cùng xem các ví dụ.

import yaml

yaml_file = open("learn_yaml.yaml", 'r')
yaml_content = yaml.load(yaml_file)

print("Key: Value")
for key, value in yaml_content.items():
    print(f"{key}: {value}")
0

Chạy tập lệnh Python, sau đó bạn sẽ thấy sự khác biệt giữa các ký tự và khối. Và đừng quên sử dụng thụt lề. fold and block characters. And don’t forget to use indentation.

import yaml

yaml_file = open("learn_yaml.yaml", 'r')
yaml_content = yaml.load(yaml_file)

print("Key: Value")
for key, value in yaml_content.items():
    print(f"{key}: {value}")
1

Booleans

Trong YAML, chúng ta có thể đại diện cho giá trị boolean true và false theo ba cách khác nhau. Nhìn họ kìa.True and False in three different ways. Look at them.

  • Các giá trị đúng, trên, và có được coi là đúng trong yaml.True, On, and Yes are considered as True in YAML.
  • Các giá trị sai, tắt và không được coi là sai trong yaml.False, Off, and No are considered as False in YAML.
import yaml

yaml_file = open("learn_yaml.yaml", 'r')
yaml_content = yaml.load(yaml_file)

print("Key: Value")
for key, value in yaml_content.items():
    print(f"{key}: {value}")
2

Nếu bạn giải thích mã YAML ở trên, thì bạn sẽ nhận được 3 giá trị khóa đầu tiên là đúng và 3 giá trị chính tiếp theo là sai.True and the next 3 key values as False.

import yaml

yaml_file = open("learn_yaml.yaml", 'r')
yaml_content = yaml.load(yaml_file)

print("Key: Value")
for key, value in yaml_content.items():
    print(f"{key}: {value}")
3

Vô giá trị

YAML hỗ trợ giá trị null tương tự như JSON. Chúng ta có thể sử dụng từ khóa null hoặc biểu tượng Tilde (~) để xác định giá trị null trong yaml. YAML có các lựa chọn thay thế đẹp phải không? Vâng, họ là loại tuyệt vời.null or the symbol tilde(~) to define the null value in YAML. YAML got pretty alternatives right? Yeah, they are kind of cool.

import yaml

yaml_file = open("learn_yaml.yaml", 'r')
yaml_content = yaml.load(yaml_file)

print("Key: Value")
for key, value in yaml_content.items():
    print(f"{key}: {value}")
4

Chạy kịch bản Python. Bạn sẽ nhận được cả hai giá trị như không có gì như Python không sử dụng thay vì từ khóa null.None as Python uses None instead of the null keyword.

import yaml

yaml_file = open("learn_yaml.yaml", 'r')
yaml_content = yaml.load(yaml_file)

print("Key: Value")
for key, value in yaml_content.items():
    print(f"{key}: {value}")
5

Mảng

Chúng ta có thể chỉ định các mảng tương tự như Python trong YAML. Hoặc chúng ta có thể viết tất cả các phần tử mảng trong các dòng riêng biệt trước dấu gạch nối (-). Hãy cùng xem một ví dụ cho mỗi đại diện.hyphen (-). Let’s see an example for each representation.

import yaml

yaml_file = open("learn_yaml.yaml", 'r')
yaml_content = yaml.load(yaml_file)

print("Key: Value")
for key, value in yaml_content.items():
    print(f"{key}: {value}")
6

Trong mã YAML ở trên, chúng tôi đã sử dụng dấu ngoặc vuông tương tự như danh sách Python. Hãy cùng xem một cách khác để đại diện cho các mảng trong YAML (có vẻ như danh sách đánh dấu).square brackets similar to Python lists. Let’s see another way to represent arrays in YAML (looks like markdown lists).

import yaml

yaml_file = open("learn_yaml.yaml", 'r')
yaml_content = yaml.load(yaml_file)

print("Key: Value")
for key, value in yaml_content.items():
    print(f"{key}: {value}")
7

Nếu bạn sử dụng tập lệnh Python của chúng tôi để giải thích các ví dụ trên. Bạn sẽ nhận được đầu ra như sau.

import yaml

yaml_file = open("learn_yaml.yaml", 'r')
yaml_content = yaml.load(yaml_file)

print("Key: Value")
for key, value in yaml_content.items():
    print(f"{key}: {value}")
6

Chúng ta có thể có từ điển trong danh sách không chỉ chuỗi, số, v.v.,

import yaml

yaml_file = open("learn_yaml.yaml", 'r')
yaml_content = yaml.load(yaml_file)

print("Key: Value")
for key, value in yaml_content.items():
    print(f"{key}: {value}")
9

Bạn sẽ nhận được một loạt từ điển nếu bạn giải thích mã YAML ở trên với tập lệnh Python của chúng tôi.

integer: 123
float: 123.123
exponential_float: 1.34e+3
0

Từ điển

Chúng ta đã thấy cú pháp của từ điển trong các ví dụ trên. Để nhanh chóng tóm tắt lại từ điển là các cặp giá trị chính. Chúng tôi có thể có bất kỳ loại dữ liệu hợp lệ nào làm giá trị cho khóa. YAML thậm chí còn hỗ trợ các từ điển lồng nhau.

Hãy cùng xem một ví dụ.

integer: 123
float: 123.123
exponential_float: 1.34e+3
1

Giải thích mã trên bạn sẽ thấy kết quả tương tự như sau.

integer: 123
float: 123.123
exponential_float: 1.34e+3
2

Bạn có biết bạn có thể chuyển đổi một danh sách thành một từ điển trong Python không?

Bộ

YAML hỗ trợ một loại dữ liệu khác được gọi là SET. Đặt chứa các giá trị duy nhất tương tự như kiểu dữ liệu đặt Pythons. Đặt các mục được đi trước bởi dấu hỏi (?) Giống như các mục trong danh sách trước dấu gạch nối (-).question mark (?) like list items preceded by hyphens (-).

Chúng ta cần đề cập rằng kiểu dữ liệu được đặt bằng cách sử dụng !! Đặt theo tên & nbsp; đặt tên.!!set after the set name.

Nhìn vào ví dụ sau.

integer: 123
float: 123.123
exponential_float: 1.34e+3
3

Vì Set chỉ chứa các giá trị duy nhất, bạn đã giành được 2 lần khi bạn diễn giải mã YAML ở trên với tập lệnh Python của chúng tôi.2 two times when you interpret the above YAML code with our Python script.

Hãy cùng xem kết quả.

integer: 123
float: 123.123
exponential_float: 1.34e+3
4

Chúng ta cũng có thể đại diện cho tập hợp tương tự như cú pháp Python như sau.

integer: 123
float: 123.123
exponential_float: 1.34e+3
5

Bạn sẽ nhận được đầu ra chính xác như ví dụ trên.

Đó là nó cho các loại dữ liệu trong YAML. Hãy cùng xem một số tính năng bổ sung trong YAML.

YAML ủng hộ ý kiến. Thật tuyệt vời. Chúng ta có thể viết nhận xét trong YAML bắt đầu bằng biểu tượng băm (#).hash (#) symbol.

integer: 123
float: 123.123
exponential_float: 1.34e+3
6

Nếu bạn giải thích mã YAML ở trên, thì bạn sẽ nhận được một khóa trống với giá trị null.

integer: 123
float: 123.123
exponential_float: 1.34e+3
7

YAML không hỗ trợ các bình luận đa dòng. Chúng ta phải viết nhiều dòng bắt đầu bằng một hàm băm cho các nhận xét đa dòng tương tự như Python.

Neo

Neo cho phép chúng tôi sao chép nội dung của một khóa bất cứ nơi nào chúng tôi muốn trong toàn bộ tài liệu. Điều này rất tiện dụng nếu bạn thích sao chép một số nội dung trong tài liệu.allow us to copy the content of a key wherever we want in the entire document. This is very handy if you like to duplicate some content in the document.

Để sử dụng neo, chúng ta phải xác định tên cho nó là một tên biến trong các ngôn ngữ lập trình. Và sau đó chúng ta có thể sử dụng nó trên tài liệu bất cứ nơi nào chúng ta muốn.

Chúng ta có thể xác định tên neo bằng cách sử dụng & và sử dụng nó với *. Hãy cùng xem một ví dụ.& and use it with *. Let’s see an example.

integer: 123
float: 123.123
exponential_float: 1.34e+3
8

Trong ví dụ trên, chúng tôi đã sử dụng mỏ neo Dublicate_data để sao chép giá trị của khóa dữ liệu. Cả hai khóa đều chứa các giá trị giống nhau nếu bạn giải thích YAML ở trên.duplicate_data anchor to copy the value of the data key. Both the keys contain the same values if you interpret the above YAML.

integer: 123
float: 123.123
exponential_float: 1.34e+3
9

Sự kết luận

Tôi hy vọng bạn có một sự hiểu biết tốt về Yaml. Bây giờ, bạn có thể sử dụng YAML trong tệp cấu hình dự án tiếp theo của mình. Bạn có thể tham khảo trang web chính thức của YAML để có được những thứ nâng cao hơn.

Mã hóa hạnh phúc 🙂

Yaml và Python có giống nhau không?

Python được khen ngợi nhiều nhất vì cú pháp thanh lịch và mã có thể đọc được, nếu bạn mới bắt đầu sự nghiệp lập trình Python phù hợp với bạn nhất. Mặt khác, YAML được trình bày chi tiết là "một định dạng tuần tự dữ liệu có thể phân tích đơn giản được thiết kế cho khả năng đọc và tương tác của con người".YAML is detailed as "A straightforward machine parsable data serialization format designed for human readability and interaction".

Yaml có phải là một phần của Python không?

Tuyên bố này chủ yếu là đúng, vì thư viện tiêu chuẩn và các mô -đun bên ngoài bao gồm một phổ rộng các nhu cầu lập trình.Tuy nhiên, Python thiếu hỗ trợ tích hợp cho định dạng dữ liệu YAML, thường được sử dụng để cấu hình và tuần tự hóa, mặc dù có điểm tương đồng rõ ràng giữa hai ngôn ngữ.Python lacks built-in support for the YAML data format, commonly used for configuration and serialization, despite clear similarities between the two languages.

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

YAML là ngôn ngữ tuần tự hóa dữ liệu có thể tiêu hóa thường được sử dụng để tạo các tệp cấu hình với bất kỳ ngôn ngữ lập trình nào.Đượ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, một ngôn ngữ tuần tự hóa dữ liệu khác.Nhưng bởi vì đó là một siêu sao nghiêm ngặt, nó có thể làm mọi thứ mà JSON có thể và hơn thế nữa.to create configuration files with any programming language. Designed for human interaction, YAML is a strict superset of JSON, another data serialization language. But because it's a strict superset, it can do everything that JSON can and more.

Yaml là gì?

YAML là ngôn ngữ tuần tự hóa dữ liệu thường được sử dụng để viết các tệp cấu hình.Tùy thuộc vào người bạn yêu cầu, YAML là viết tắt của một ngôn ngữ đánh dấu khác hoặc ngôn ngữ YAML không phải là ngôn ngữ đánh dấu (một từ viết tắt đệ quy), trong đó nhấn mạnh rằng YAML dành cho dữ liệu chứ không phải tài liệu.a data serialization language that is often used for writing configuration files. Depending on whom you ask, YAML stands for yet another markup language or YAML ain't markup language (a recursive acronym), which emphasizes that YAML is for data, not documents.