
场景:想要设置一个配置文件存放一些适合放到配置里的东西,比如数据库的用户名密码
1.方法一:写成这种格式,读取后读出来是字典格式,很好用
(tips:冒号后要有一个空格)
mysql:
name: xxxx
user: xxxx
password: xxxx
host: xxxx
dbname: xxxx
引入yaml模块,使用 yaml.load加载一下
DB_config = open("config.yaml", mode="r", encoding="utf-8")
config = yaml.load(DB_config)
print(config)
print(type(config))
输出为:
{'mysql': {'name': 'XXXX', 'user': 'XXXX', 'password': 'XXXX', 'host': 'XXXX', 'dbname': 'XXXX'}}
<class 'dict'>
配合jsonpath食用,一下读出来这5个要的字段,拼接成数据库链接,很实用!
(tips:"$.mysql.*"为jsonpath语法,用切片也是一样的,不过比切片要灵活,该句的意思是读取mysql节点,子节点下的所有key对应的value)
jsonpath.jsonpath(yaml.load(config,Loader=yaml.FullLoader), "$.mysql.*")
2.方法二:也可以写成这种格式,不过不太易读,可能会忘掉啥配的是啥
mysql:
- xxxx
- xxxx
- xxxx
使用同样的方法读一下,读出来是一个字典挂一个列表的格式
输出为:
{'mysql1': ['mysql+pymysql', 'root', 'Autumn2020']}
<class 'dict'>
3.方法三
(没有方法三,经验告诉我,不要试图一下学太多,有能用的就先用,不好使了再学新的)