<返回更多

python+YAML格式文件,是不是该放弃其它格式了

2020-04-13    
加入收藏

现在越来越多的开源软件在配置文件中都使用了YAML格式,这种格式文件去除了引号以及各种括号,看起来语法更加精炼。究其原因,YAML格式用更少的语法来表达丰富的含义。

YAML是一个可读性更高(和XML、JSON格式相比),用来表达数据序列化的格式。YAML的意思是”Yet Another Markup Language”(YAML仍是一种标记语言)。

我们通过一段人员简历示例来了解下YAML格式

#YAML格式

name:张三

age:22

sex:男

interest:

兴趣1:爬山

兴趣2:音乐

skill:

- 语言:JAVA

时间:2年

- 语言:Python

时间:2年

exam:

- subject:英语4级

score:50

- subject:高级程序员

score:50

YAML基本格式要求:

YAML大小写敏感

使用缩进代表层次关系

缩进只能使用空格,空格不要求个数,只需要相同层级对齐(一般建议2个或4个空格),并且不允许使用Tab。

对象:

格式为key:value。冒号后面要加一个空格。

如示例中的 name: 张三

还可以使用缩进表示层级关系,如

interest:

兴趣1:爬山

兴趣2:音乐

YAML中还支持流式(flow)语法表示对象,比如上面代码可以写为:

interest:{兴趣1:爬山,兴趣2:音乐}

数组项:

使用一个短横线加一个空格代表一个数组项,如

skill:

- 语言:JAVA

时间:2年

- 语言:Python

时间:2年

 

python+YAML格式文件,是不是该放弃其它格式了

 

 

1.使用ruamel.yaml模块

Pip install ruamel.yaml

 

2.YAML文件的读取和写入

YAML文件的读取

通过代码演示yaml文件的读取

from ruamel.yaml import YAML

yaml=YAML(typ='safe')

with open(r'g:bookcode1010.1.yml',encoding="utf-8") as file:

data=yaml.load(file)

print(data)

输出结果如下:

{'name': '张三', 'age': 22, 'sex': '男', 'interest': {'兴趣1': '爬山', '兴趣2': '音乐'}, 'skill': [{'语言': 'JAVA', '时间': '2年'}, {'语言': 'Python', '时间': '2年'}], 'exam': [{'subject': '英语4级', 'score': 50}, {'subject': '高级程序员', 'score': 50}]}

 

YAML文件的写入

通过代码演示将字典或者列表写入YAML文件。

from ruamel.yaml import YAML

yaml=YAML()

data={'name': '李四', 'age': 22, 'sex': '男',

'interest': {'兴趣1': '爬山', '兴趣2': '音乐'},

'skill': [{'语言': 'Python', '时间': '2年'}],

'exam': [{'subject': '高级程序员', 'score': 50}]

}

with open(r'g:bookcode1010.2.yaml',mode='w',encoding="utf-8") as file:

yaml.dump(data,file)

结果如下:

python+YAML格式文件,是不是该放弃其它格式了

 

YAML格式,个人感觉比JSON明显要清晰一些。大家可以亲自写一遍代码,加深记忆加油。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>