python函数——Bunch配置加载
时间:2022-07-24
本文章向大家介绍python函数——Bunch配置加载,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
0 前言
在Python开发中,经常将配置文件以json 的形式写在文件中
Bunch
可以将配置文件转换为配置类和配置字典。
1 Bunch 教程
1.1 初始化
>>> b = Bunch()
>>> b.hello = 'world'
>>> b.hello
'world'
>>> b['hello'] += "!"
>>> b.hello
'world!'
>>> b.foo = Bunch(lol=True)
>>> b.foo.lol
True
>>> b.foo is b['foo']
True
1.2 继承Dict 的使用用法
>>> b.keys()
['foo', 'hello']
>>> b.update({ 'ponies': 'are pretty!' }, hello=42)
>>> print repr(b)
Bunch(foo=Bunch(lol=True), hello=42, ponies='are pretty!')
>>> [ (k,b[k]) for k in b ]
[('ponies', 'are pretty!'), ('foo', Bunch(lol=True)), ('hello', 42)]
>>> "The {knights} who say {ni}!".format(**Bunch(knights='lolcats', ni='can haz'))
'The lolcats who say can haz!'
1.3 序列化
>>> b = Bunch(foo=Bunch(lol=True), hello=42, ponies='are pretty!')
>>> import json
>>> json.dumps(b)
'{"ponies": "are pretty!", "foo": {"lol": true}, "hello": 42}'
>>> b = Bunch(foo=Bunch(lol=True), hello=42, ponies='are pretty!')
>>> import yaml
>>> yaml.dump(b)
'!bunch.Bunchnfoo: !bunch.Bunch {lol: true}nhello: 42nponies: are pretty!n'
>>> yaml.safe_dump(b)
'foo: {lol: true}nhello: 42nponies: are pretty!n'
2 接口封装
import json
from bunch import Bunch
def get_config_from_json(json_file):
"""
将配置文件转换为配置类
:param json_file: json文件
:return: 配置信息
"""
with open(json_file, 'r') as config_file:
config_dict = json.load(config_file) # 配置字典
config = Bunch(config_dict) # 将配置字典转换为类
return config, config_dict
- https://juejin.im/post/5aded5b7518825671b022c18
- https://pypi.org/project/bunch/
- 北京允许无人驾驶路测 难道是为方便圣诞老人送礼?
- 小程序新增多项功能,优化100多个功能点,堪称重磅!
- 人工智能的回报率:对冲基金嵌入机器学习?
- “人工智能助力上海科创中心建设”国际高峰论坛圆满结束
- 纳米白与Pandas
- 人工智能来了!实体零售会变成什么样?
- 全国计算机等级考试重大改革!新增Python科目
- 福特:相比美国人中国人更欢迎自动驾驶未来
- Zzreal的大数据笔记-SparkDay03
- 一文读懂公有链、私有链、联盟链
- 你开车低头看个微信消息都能被拍的清清楚楚,因为有这些黑科技
- 开启程序员世界的Hello World
- TensorFlow实战——图像分类神经网络模型
- SQL,一门不是语言的语言?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode 1547. Minimum Cost to Cut a Stick(动态规划)
- 管道符漏洞
- 06-STM32+ESP8266+AIR202远程升级方案-移植STM32+ESP8266实现利用http或https远程更新STM32程序到自己的项目(定时访问升级,备份升级)
- 反射
- 记一次sys 数据库的修复
- 使用Django管理数据库表
- php学习day3
- mysqlbinlog命令详解
- XtraBackup工具详解 Part 9 innobackupex命令总结
- ctfhub-信息泄露-Git泄露
- php学习day2
- mysqlbinlog命令详解MySQL 5.7 常用命令
- Linxu系统安装PHP
- linux sed命令详解
- 代码审计day10