python讀取yaml配置文件


首先了解一下yaml最基礎、最常用的語法

  • 大小寫敏感
  • 使用縮進代表層級關系
  • 縮進只能用空格,不能使用Tab
  • 不要求空格個數,只要相同層級左對齊
  • 冒號后面需要輸入一個空格,再輸入值
  • 字符串默認不使用引號表示,也可以用單引號或雙引號,雙引號不會對特殊字符進行轉義
s1: '內容\n字符串'
s2: "內容\n字符串"
  • 單引號之中如果還有單引號,必須連續使用兩個單引號轉義
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:\before\lds\pages
fileNamePath = os.path.split(os.path.realpath(__file__))[0]

# 獲取配置文件的路徑   F:\before\lds\pages\application-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的形式去取值了。  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM