pythonxuexi 2019-06-27
和GNU一样,YAML是一个递归着说“不”的名字。不同的是,GNU对UNIX说不,YAML说不的对象是XML。
YAML不是XML。
为什么不是XML呢?因为:
上面5条也就是XML不足的地方。同时,YAML也有XML的下列优点:
YAML可以基于流来处理;
YAML表达能力强,扩展性好。
总之,YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。
更多的内容及规范参见http://www.yaml.org。
YAML语法规则:
http://www.ibm.com/developerworks/cn/xml/x-cn-yamlintro/
http://www.yaml.org/
语法
结构通过空格缩进来展示。列表里的项用"-"来代表,字典里的键值对用":"分隔.
这几乎就是所有的语法了.
比如……
一般YAML文件扩展名为.yaml。比如:yaml_example.yaml
将yaml写成配置脚本test.yaml ,以下介绍如何读写yaml配置。
pip3 install pyyaml
name: junxi age: 18 spouse: name: Rui age: 18 children: - name: Chen You age: 3 - name: Ruo Xi age: 2
#!/usr/bin/env python # _*_ coding:utf-8 _*_ __author__ = 'junxi' import sys # sys.path.insert(0, 'D:/program/python-腾讯课程/0-01-python其他模块学习/') import yaml f = open('yaml_example.yaml') content = yaml.load(f) print type(content) print '修改前: ', content # 可以看出整个Yaml配置文件是一个字典, 里面可以包含字典和列表 content['age'] = 17 # 根据Key修改对应的值 content['children'][1]['age'] = 1 print '修改后: ', content
程序输出的结果为:
<type 'dict'> 修改前: {'age': 18, 'spouse': {'age': 18, 'name': 'Rui'}, 'name': 'junxi', 'children': [{'age': 3, 'name': 'Chen You'}, {'age': 2, 'name': 'Ruo Xi'}]} 修改后: {'age': 17, 'spouse': {'age': 18, 'name': 'Rui'}, 'name': 'junxi', 'children': [{'age': 3, 'name': 'Chen You'}, {'age': 1, 'name': 'Ruo Xi'}]}
The End......