博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

python中的yaml模块

Posted on 2021-10-08 22:13  心默默言  阅读(772)  评论(0编辑  收藏  举报

python:yaml模块

 

1.yaml文件介绍

 

YAML是一种简洁的非标记语言。其以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁。

  1. yaml文件规则 基本规则: 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格。 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 使用#表示注释 字符串可以不用引号标注

  2. yaml文件数据结构

    对象:键值对的集合(简称 "映射或字典") 键值对用冒号 “:” 结构表示,冒号与值之间需用空格分隔 数组:一组按序排列的值(简称 "序列或列表") 数组前加有 “-” 符号,符号与值之间需用空格分隔 纯量(scalars):单个的、不可再分的值(如:字符串、bool值、整数、浮点数、时间、日期、null等) None值可用null可 ~ 表示

 

2.安装yaml

 

pip命令: pip install PyYaml

引入:import yaml

 

3.示例

 

编写yaml配置文件 yaml_example.yaml

 

name: junxi

age: 18

spouse:

name: Rui

age: 18

children:

  • name: Chen You

    age: 3

  • name: Ruo Xi

    age: 2

 

编写解析yaml文件的python程序 yaml_example.py

In [9]:
#!/usr/bin/env python

import yaml

f = open('yaml_example.yaml')

content = yaml.load(f)

print('修改前: ', content)  # 可以看出整个Yaml配置文件是一个字典, 里面可以包含字典和列表
content['age'] = 17  # 根据Key修改对应的值

content['children'][1]['age'] = 1

print('修改后: ', content)
 
修改前:  {'name': 'junxi', 'age': 18, 'spouse': {'name': 'Rui', 'age': 18}, 'children': [{'name': 'Chen You', 'age': 3}, {'name': 'Ruo Xi', 'age': 2}]}
修改后:  {'name': 'junxi', 'age': 17, 'spouse': {'name': 'Rui', 'age': 18}, 'children': [{'name': 'Chen You', 'age': 3}, {'name': 'Ruo Xi', 'age': 1}]}