我正在寻找可以轻松从JSON文件返回配置对象的库,而不仅仅是读取JSON文件并将其返回 - 将继承应用于各节。类似于旧 *.ini或zend_config_json(来自PHP Zend Framework)
示例:
{
"production":{
"phpSettings":{
"display_startup_errors": false,
"display_errors": false
},
"includePaths":{
"library": "APPLICATION_PATH/../library"
},
"bootstrap":{
"path": "APPLICATION_PATH/Bootstrap.php",
"class": "Bootstrap"
},
"appnamespace": "Application",,
"resources":{
"frontController":{
"controllerDirectory": "APPLICATION_PATH/controllers",
"moduleDirectory": "APPLICATION_PATH/modules",
"params":{
"displayExceptions": false
}
},
"modules":[],
"db":{
"adapter": "pdo_sqlite",
"params":{
"dbname": "APPLICATION_PATH/../data/db/application.db"
}
},
"layout":{
"layoutPath": "APPLICATION_PATH/layouts/scripts/"
}
}
},
"staging":{
"_extends": "production"
},
"testing":{
"_extends": "production",
"phpSettings":{
"display_startup_errors": true,
"display_errors": true
},
},
"development":{
"_extends": "production",
"resources":{
"frontController":{
"params":{
"displayExceptions": true
}
}
}
}
}
作为返回,我将拥有其中一个部分,IT部分具有" _EXTEND"属性,这将是扩展的部分(合并/更新)的此部分。
是某些库已经这样做还是python社区更喜欢以不同的方式处理继承?
请看一下PyConfigini,它是在zend_config_ini上模拟的配置文件解析器
检查这个
cfg = JSONConfigParser()
cfg.read_string("""
[section]
number = 3.141592654
dictionary = {"key": "value"}
list = [1,
2,
3]
nested = {"list": [1,2,3]}
true = true
none = null
[DEFAULT]
# settings in the default section are inherited
# by all other sections.
default-setting = "default"
""")
# read a setting
cfg.get("section", "number")
# read a setting using index notation
cfg["section"]["true"]
# settings inherited from DEFAULT
cfg.get("section", "default-setting")
在这里继承
# settings inherited from DEFAULT
cfg.get("section", "default-setting")
参考:https://pypi.python.org/pypi/json-config-parser/0.1.2