1、& 锚点和 * 别名,可以用来引用,其中`&` 用于定义变量, `*` 用于引用变量, `<<` 表示合并到当前数据。
案例1:引用变量
# 文件内容
name: &name xiaoming
tester: *name
'''
# 相当于以下内容:
name: 灰蓝
tester: 灰蓝
'''
# python 代码
import yaml
import os
# 项目路径
project_path = ((__file__))[0].split('tools')[0]
def get_yaml_data(fileDir):
"""
读取 文件内容
:param fileDir:
:return:
"""
# 1、在内存里加载这个文件
f = open(fileDir, 'r', encoding='utf-8')
# 2、调用yaml读取文件
# Loader= 更加安全
res = (f, Loader=)
return res
if __name__ == '__main__':
info = get_yaml_data(project_path + r'\')
print(info)
# 输出:
# {'name': 'xiaoming', 'tester': 'xiaoming'}
案例2:引用变量与合并当前数据
# 文件内容
defaults: &app
adapter: postgres
host: localhost
development:
database: myapp_development
hello: *app
test:
database: myapp_test
<<: *app
# python代码
import yaml
import os
# 项目路径
project_path =((__file__))[0].split('tools')[0]
def get_yaml_data(fileDir):
"""
读取 文件内容
:param fileDir:
:return:
"""
# 1、在内存里加载这个文件
f = open(fileDir, 'r', encoding='utf-8')
# 2、调用yaml读取文件
# Loader= 更加安全
res = (f, Loader=)
return res
if __name__ == '__main__':
info = get_yaml_data(project_path + r'\')
print(info)
# 输出:
# {
# 'defaults':
# {'adapter': 'postgres', 'host': 'localhost'},
# 'development':
# {'database': 'myapp_development',
# 'hello':
# {'adapter': 'postgres', 'host': 'localhost'}},
# 'test': {'adapter': 'postgres', 'host': 'localhost', 'database': 'myapp_test'}
# }