使用 YAML 的好处之一是可以添加注释说明
例如:(人资.yaml)
ChuaTony:
公司: 文传
联络:
- 公司: '1422031030'
- 手机: '18650144578'
- 住家: '2233068479'
住址:
- 公司: 褔建。
- 住家: 台中。
交通: 无
附件:
Tom:
公司: 天褔
联络:
- 公司: '1422031030'
- 手机: '18650123456'
- 住家: '2233061234'
住址:
- 公司: 褔建。
- 住家: 台北。
交通: 自行车
附件:
如果想添加注释说明该如何做呢?
使用
.yaml_add_eol_comment
.yaml_set_comment_before_after_key
.yaml_set_start_comment
来处理即可:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
' a YAML module '
__author__ = 'Chua Tony'
import ruamel.yaml
#开档
with open("人资.yaml", "r",encoding="utf-8") as docs:
try:
#alldata = ruamel.yaml.load(docs, Loader=ruamel.yaml.RoundTripLoader) #使用 Loader=ruamel.yaml.RoundTripLoader
alldata = ruamel.yaml.round_trip_load(docs)
except ruamel.yaml.YAMLError as exc:
print(exc)
#印出
x = 0
for data in alldata:
x += 1
alldata[data].yaml_add_eol_comment('No.'+str( x ), column=12) #添加注释说明
alldata[data].yaml_set_comment_before_after_key('联络', '2017-05-18', after='Contact', after_indent=2) #添加注释说明於行上下
alldata[data]['住址'].yaml_set_start_comment('Address', indent=2) #添加英文注释说明於行下
#修改
alldata['Tom']['联络'][0]['公司']='963852741'
#写档
with open('人资comment.yaml', 'w+', encoding='utf8') as outfile:
#ruamel.yaml.dump(alldata, outfile, default_flow_style=False, allow_unicode=True, Dumper=ruamel.yaml.RoundTripDumper, indent=2, block_seq_indent=2) #使用 Dumper=ruamel.yaml.RoundTripDumper
ruamel.yaml.round_trip_dump(alldata, outfile, default_flow_style=False, allow_unicode=True, indent=2, block_seq_indent=2) #indent:缩进 block_seq_indent:区块缩进
output:(人资comment.yaml)
ChuaTony: # No.1
公司: 文传
# 2017-05-18
联络:
# Contact
- 公司: '1422031030'
- 手机: '18650144578'
- 住家: '2233068479'
住址:
# Address
- 公司: 褔建。
- 住家: 台中。
交通: 无
附件:
Tom: # No.2
公司: 天褔
# 2017-05-18
联络:
# Contact
- 公司: '963852741'
- 手机: '18650123456'
- 住家: '2233061234'
住址:
# Address
- 公司: 褔建。
- 住家: 台北。
交通: 自行车
附件: