yaml,一款比ini更好用的数据管理工具

1、安装pyyaml模块

2、读取yaml文件数据

import yaml

f = open("data.yaml", "r", encoding="utf-8")
data = yaml.load(f, Loader=yaml.FullLoader)
print(data)

代码就这么几行,不用这里就不细说了,

下面来看看,yaml文件应该怎么写(文件名以.yaml为后缀),

在yaml中,常用的数据格式主要有两种:字典、列表,

一、字典

键值之间使用:作为分割符,一定要在:的后面加空格,否则会报错

1、key为字符串

# key和value如果不是数字类型,也不用加引号,读取后默认转为str类型
a: c
b: 2

读取结果:  {'a': 'c', 'b': 2} 

2、key为数字

# 此时的key为int类型,读取后仍然是int类型
1: 3
2: 4

读取结果: {1: 3, 2: 4} 

3、value是字典

# value要tab缩进
a:
  q: 1
  w: 2
b:
  z: 4
  x: 5

读取结果:

{'a': {'q': 1, 'w': 2}, 'b': {'z': 4, 'x': 5}}

 

二、列表

列表与字典有所不同,列表使用- 作为标识,一定要在- 的后面加空格,否则会报错或者无法识别数据格式,

1、列表仅包含数字和字符串

- 1
- 2
- a
- b

读取结果: [1, 2, 'a', 'b'] 

2、列表包含列表

- 1
-
  - a
  - 2
  - c
- 3

读取结果: [1, ['a', 2, 'c'], 3] 

 

三、混用

1、字典value为列表

a:
  - 1
  - 2
b:
  - 4
  - 5

读取结果: {'a': [1, 2], 'b': [4, 5]} 

2、列表中包含字典

- 1
-
  a: 7
  2: 8
  c: 9
- 3

读取结果: [1, {'a': 7, 2: 8, 'c': 9}, 3] 

 

上面将元素拆的很细,能不能简写呢,比如列表中包含字典,将字典数据就写在一行内,能行吗?

我们将上面最后一个例子改一下,

- 1
-
  {a: 7, 2: 8, c: 9}
- 3

读取结果: [1, {'a': 7, 2: 8, 'c': 9}, 3] 

事实证明这样操作也是可以,不过仍然要记得在: 后面加空格。

posted @ 2020-04-05 13:31  suanmiao  阅读(781)  评论(0编辑  收藏  举报