python读取yaml配置文件

首先了解一下yaml最基础、最常用的语法

  • 大小写敏感
  • 使用缩进代表层级关系
  • 缩进只能用空格,不能使用Tab
  • 不要求空格个数,只要相同层级左对齐
  • 冒号后面需要输入一个空格,再输入值
  • 字符串默认不使用引号表示,也可以用单引号或双引号,双引号不会对特殊字符进行转义
s1: '内容
字符串'
s2: "内容
字符串"
  • 单引号之中如果还有单引号,必须连续使用两个单引号转义
str: 'labor''s day' 

 map嵌套map(字典)

# YAML表示
websites:
    YAML: yaml.org 
    Ruby: ruby-lang.org 
    Python: python.org 
    Perl: use.perl.org 

# 对应Json表示
{ websites: 
   { YAML: 'yaml.org',
     Ruby: 'ruby-lang.org',
     Python: 'python.org',
     Perl: 'use.perl.org' } }

 map嵌套list(列表)

# YAML表示
languages:
    - Ruby
    - Perl
    - Python 
    - c

# 对应Json表示
{ languages: [ 'Ruby', 'Perl', 'Python', 'c' ] }  

 list嵌套list

# YAML表示
-
    - Ruby
    - Perl
    - Python 
- 
    - c
    - c++
    - java

# 对应Json表示
[ [ 'Ruby', 'Perl', 'Python' ], [ 'c', 'c++', 'java' ] ]
除此以外,还可以如下表示该结构

# 方法2
- - Ruby
    - Perl
    - Python 
- - c
    - c++
    - java

# 方法3
- [Ruby,Perl,Python]
- [c,c++,java]

 list嵌套map

# YAML表示
-
    id: 1
    name: huang
-
    id: 2
    name: liao

# 对应Json表示
[ { id: 1, name: 'huang' }, { id: 2, name: 'liao' } 

1、安装yaml

pip install pyyaml

2、编写一个py文件,读取yaml文件,yaml文件需要通过load方法转换成字典格式,然后再通过字典取值的方式获得值  

# -*- coding:utf-8 -*- 

import yaml
import os


# 获取当前文件的RealPath  F:eforeldspages
fileNamePath = os.path.split(os.path.realpath(__file__))[0]

# 获取配置文件的路径   F:eforeldspagesapplication-lds.yml
yamlPath = os.path.join(fileNamePath, 'application-lds.yml')

# 先读取文件数据,再通过load方法转成字典
with open(yamlPath, 'r', encoding='utf-8') as f:
    x = yaml.load(f, Loader=yaml.FullLoader)
    print(x['table']['self'])

load加载成字典形式后,就可以使用key-value的形式去取值了。  

原文地址:https://www.cnblogs.com/wulixia/p/12069500.html