下面我将详细讲解YAML和JSON的区别。
YAML和JSON的出现背景
-
JSON(JavaScript Object Notation):由于Web应用的出现,需要一种轻量级的数据交换格式,于是JSON应运而生。
-
YAML(YAML Ain’t Markup Language):大型编程项目中,配置文件的格式必须得像代码一样易读,YAML应运而生。
YAML和JSON的区别
-
字符串的表示方式
-
JSON:使用双引号包含字符串。
{
"name": "Mary",
"age": 28
}
- YAML:使用换行的方式表示字符串,也可以使用双引号(跟JSON类似)。
name: Mary
age: 28
name: "Mary"
age: 28
-
注释的表示方式
-
JSON:没有注释的表示方式。
-
YAML:可以使用#来注释一行,也可以使用|或>对多行进行注释。
# This is a comment
name: Mary
age: 28
# This is a multi-line
# comment using the '|' symbol
description: |
Mary is a software developer
# This is a multi-line
# comment using the '>' symbol
notes: >
Mary is an experienced developer
who enjoys working with others
-
对象的表示方式
-
JSON:使用“{}”表示一个对象,使用“[]”表示一个数组。
{
"name": "Mary",
"age": 28,
"hobbies": ["coding", "reading"]
}
- YAML:使用缩进表示对象,使用“-”表示数组。
name: Mary
age: 28
hobbies:
- coding
- reading
-
布尔类型的表示方式
-
JSON:使用true或false表示布尔类型。
{
"success": true,
"failure": false
}
- YAML:使用yes或no表示布尔类型。
success: yes
failure: no
示例
- 解析JSON格式的数据
import json
data = '{"name": "Mary", "age": 28, "hobbies": ["coding", "reading"]}'
parsed_data = json.loads(data)
print(parsed_data["name"]) # Output: Mary
print(parsed_data["hobbies"][0]) # Output: coding
- 解析YAML格式的数据
import yaml
data = """
name: Mary
age: 28
hobbies:
- coding
- reading
"""
parsed_data = yaml.safe_load(data)
print(parsed_data["name"]) # Output: Mary
print(parsed_data["hobbies"][1]) # Output: reading
以上就是YAML和JSON的区别的完整攻略,希望能对您有所帮助。