Python中YAML配置文件模块的使用详解
什么是YAML?
YAML 是一种人性化的表现形式,用于序列化数据。与 XML 和 JSON 不同,它不是面向计算机的,而是面向人的语言。
YAML类似于标记语言,比如HTML、XML,但是其更加简洁、易读,而且可读性更好。
安装PyYAML模块
在开始使用之前,我们需要安装PyYAML模块。可以使用pip或conda来安装:
pip install PyYAML
或
conda install PyYAML
YAML配置文件基础语法
1. 基本格式
YAML文件的扩展名是 .yml
或 .yaml
。
YAML文件采用缩进方式表示层级关系。每一个冒号后面需要留一个空格。
例如,我们可以编写如下的配置文件:
# server.yml
server:
host: 127.0.0.1
port: 80
username: admin
password: 123456
2. 列表
使用中括号 [] 表示一个列表,每个元素之间需要用换行符分隔开。例如:
# fruits.yml
fruits:
- apple
- banana
- orange
3. 嵌套
YAML支持嵌套的语法,可以用空格表示层级关系。例如:
# company.yml
company:
name: Acme Inc.
employees:
- name: Bob
age: 27
- name: Alice
age: 23
YAML文件的读写操作
1. 读取YAML文件
使用PyYAML中的load函数,可以将YAML文件读取为Python字典:
import yaml
with open("fruits.yml", "r") as f:
data = yaml.load(f, Loader=yaml.FullLoader)
print(data)
输出结果为:
{'fruits': ['apple', 'banana', 'orange']}
2. 写入YAML文件
使用PyYAML中的dump函数,可以将Python字典写入为YAML文件:
import yaml
fruits = {
"fruits": [
"apple",
"banana",
"orange"
]
}
with open("fruits.yml", "w") as f:
yaml.dump(fruits, f)
示例说明
1. MySQL配置文件示例
在一个MySQL连接的配置文件中,我们可以使用YAML语法来表示:
# mysql.yml
mysql:
host: localhost
port: 3306
username: root
password: 123456
database: mydb
在Python程序中读取该配置文件:
import yaml
import pymysql
with open("mysql.yml", "r") as f:
data = yaml.load(f, Loader=yaml.FullLoader)
db = pymysql.connect(
host=data['mysql']['host'],
port=data['mysql']['port'],
user=data['mysql']['username'],
password=data['mysql']['password'],
database=data['mysql']['database']
)
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
version = cursor.fetchone()
print("Database version: %s" % version[0])
db.close()
输出结果为:
Database version: 5.7.31
2. Flask网站配置文件示例
在一个Flask网站的配置文件中,我们可以使用YAML语法来表示:
# app.yml
app:
debug: true
secret_key: mysecretkey
db:
host: localhost
port: 3306
username: root
password: 123456
database: mydb
在Python程序中读取该配置文件:
import yaml
from flask import Flask
app = Flask(__name__)
with open("app.yml", "r") as f:
data = yaml.load(f, Loader=yaml.FullLoader)
app.config['DEBUG'] = data['app']['debug']
app.config['SECRET_KEY'] = data['app']['secret_key']
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://%s:%s@%s:%s/%s' % (
data['app']['db']['username'],
data['app']['db']['password'],
data['app']['db']['host'],
data['app']['db']['port'],
data['app']['db']['database']
)
通过以上示例,可以学习到如何使用PyYAML模块读写YAML格式的配置文件,并且可以在Python程序中方便地使用这些数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中yaml配置文件模块的使用详解 - Python技术站