简单的yaml配置文件解析器,易于访问结构化数据

envyaml的Python项目详细描述


环境Build StatusCoverage StatusVersionsLicense

简单的yaml配置文件解析器,易于访问结构化数据

为什么

现代配置文件变得越来越复杂、灵活、可读性更强。 yaml文件格式非常适合存储配置,但没有传递环境变量的选项。它们提供灵活性、可读性,并提供存储复杂数据结构的选项。 该项目旨在简化yaml文件和环境变量作为程序配置文件的使用,并且易于配置密钥访问。

安装

pip install envyaml

基本用法

假设我们有一个带有这个配置文件的项目env.yaml

# env.yamlproject:name:"${PROJECT_NAME}-${PROJECT_ID}"database:host:$DATABASE_HOSTport:3301username:usernamepassword:$DATABASE_PASSWORDdatabase:testtable:user:table_userblog:table_blogredis:host:$REDIS_HOSTport:5040config:expire:300prefix:$REDIS_PREFIXempty_env:$NOT_EXIST_ENV_VARIABLE

环境变量设置为

PROJECT_NAME=simple-hello
PROJECT_ID=42
DATABASE_HOST=xxx.xxx.xxx.xxx
DATABASE_PASSWORD=super-secret-password
REDIS_PREFIX=state

使用EnvYAML

分析文件
fromenvyamlimportEnvYAML# read file env.yaml and parse configenv=EnvYAML('env.yaml')# access project nameprint(env['project.name'])# >> simple-hello-42# access whole database sectionprint(env['database'])# {# 'database': 'test',# 'host': 'xxx.xxx.xxx.xxx',# 'password': 'super-secret-password',# 'port': 3301,# 'table':#   {#       'blog': 'table_blog', #       'user': 'table_user'#   },# 'username': 'username'# }# access database host value as key itemprint(env['database.host'])# >> xxx.xxx.xxx.xxx# access database user table value as key itemprint(env['database.table.user'])# >> table_user# access list items by numberprint(env['list_test'][0])# >> one# access list items by number as key print(env['list_test.1'])# >> two

使用get函数和默认值访问配置

print(env.get('not.exist.value','default'))# >> defaultprint(env.get('empty_env','default'))# >> defaultprint(env['empty_env'])# >> None

许可证

麻省理工学院许可。有关详细信息,请参见LICENSE文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java动态包含和排除MavReplugin   javadspace安装问题   java矩阵乘法mapreduce   java获取jsp中的当前页面apache分幅   域名和应用程序名相同时的安卓 Java包命名   java无法调用“javafx.scene.control.ComboBox.getItems()”,因为“Controller.getMyBox()”的返回值为空   从projectoxford导入的java手写识别操作不再工作   java如何在日志中打印RESTJSON请求/响应?   java StringTokenizer NoSuchElementExecption错误   java插入查询未执行或均未给出异常   输入上的java getText()未返回文本   java如何在浏览器中跳过浏览页面的历史记录   java自动遍历为组件值动态创建的JPanel   java如何从输出JSONFILE中删除多余的括号?   java@RestController在调用时总是返回404