安装
-
json 是 python 内置
-
yaml 需要安装
pip install pyyaml
格式
对于同样一段数据:
test_data = {"金山中学":{
"101班":{
"王宁": {
"语文":33,
"数学":22,
"英语":18
}
}}}
- 我们用下面的代码分别存入
yaml
和json
文件中:
with open("yaml.yml", 'w') as f:
yaml.dump(test_data, f, allow_unicode=True)
with open("json.json", "w") as f:
json.dump(test_data, f, ensure_ascii=False)
- 很直观可以看到:
- json 存储的时候采用的是大括号的方式,
- 不同级别的数据之间没有明显的间隔
- 同时 json 的 key 都用双引号进行区分。
- yaml 存储的时候不进行任何的括号,
- 通过空格来明确区分不同数据之间的层级关系
- yaml 数据中没有使用双引号来约束 key
- yaml 的存取速度比 json 要慢,因为 yaml 本身能够比 json 存的数据复杂,所以序列化和反序列化也要更复杂,这导致了存取速度的减慢,所以大规模的数据时还是采用 json 的方式
读取方式
yaml
的读取需要指定Loader
的方式
with open("yaml.yml", 'r') as f:
test_ = yaml.load(f, Loader=yaml.FullLoader)
参考文章
yaml和json区别
YAML vs. JSON: 有什么区别?
Python Yaml dump文件时中文显示解决方法