python 操作yaml 配置文件

前言

除了json、xml外yam同样是一种较为常见的项目中所用到的配置文件。这里和大家一起快速入门。

如何书写

我们先来看示例

name: yuhua
occupation: writer
composition:
  1991: 在雨中呐喊
  1992: 活着
  1999:
    - 黄昏里男孩
    - 现实一种

比如我们现在想把余华的相关信息用yaml表示。就这样简单的使用,
name: yuhua代表键值对。

如果要书写新的键值对只需再起一行如occupation: writer即可。如果是多层嵌套,则如上述composition 书写方式即可。

我们来看一下打印结果。

import yaml

if __name__ == '__main__':
    with open("hello.yaml", encoding="utf-8") as f:
        result = f.read()
        x = yaml.load(result, Loader=yaml.FullLoader)
    print(x)
{
    "name": "yuhua", 
    "occupation": "writer", 
    "composition": {
        "1991": "在雨中呐喊", 
        "1992": "活着", 
        "1999": [
            "黄昏里男孩", 
            "现实一种"
        ]
    }
}

其中回车空格代表下一级,而回车空格加 -则代表列表。是不是很简单。

如何写入

同样十分简单,我们只需要修改后覆盖写入即可。

x['composition'][1999].append("许三观卖血记")
with open("hello.yaml", 'w', encoding='utf-8') as w_f:
    # 覆盖原先的配置文件
    yaml.dump(x, w_f, allow_unicode=True)

在这里插入图片描述
这样就写回来了,注意这时候如果不加这个参数allow_unicode=True中文则会乱码。

如何保证顺序

其实我们也可以看到虽然我们只改变了一个值,但是yaml文件的顺序却发生了改变。有时候我们并不想让yaml文件的顺便发生改变,这个时候再我们写入的时候则需要加入。
sort_keys=False

with open("hello.yaml", 'w', encoding='utf-8') as w_f:
    # 覆盖原先的配置文件
    yaml.dump(x, w_f, allow_unicode=True, sort_keys=False)

这样即可保证原本的顺序。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值