是否可以使用缩进来使用Python'configparser'存储多维字典(3深)?解决方法是拆分键值,但想知道是否有一种直接导入字典的简洁方法。
不工作 - 在配置文件中使用子选项
[OPTIONS] [SUB-OPTION] option1 = value1 option2 = value2 option3 = value3
工作 - 在子选项价值上使用分割
[OPTIONS] SUB-OPTION = 'option1, value1', 'option2, value2', 'option3, value3'
DICTIONARY VALUES
dict['OPTIONS']['SUB-OPTION'] = { option1 : value1, option2 : value2, option3 : value3, }
答案 0 :(得分:0)
ASAIK,不是 (见下文)这种格式的嵌套配置文件。
我建议像配置文件一样使用json:
Select * from table1
where (select column1 from table1
minus select column1 from table2);
然后在代码中使用:
{
"OPTIONS": {
"SUB-OPTIONS": {
"option1" : value1,
"option2" : value2,
"option3" : value3,
}
}
}
或者,您可以使用YAML(使用PyYAML)作为一个很棒的配置文件。
以下配置文件:
from ast import literal_eval
with open("filename","r") as f:
config = literal_eval(f.read())
可以使用以下方法解析:
option1:
suboption1:
value1: hello
value2: world
suboption2:
value1: foo
value2: bar
然后您可以像在import yaml
with open(filepath, 'r') as f:
conf = yaml.safe_load(f)
中一样访问数据:
dict
答案 1 :(得分:0)
config.ini
OPTIONS = {"option1": "value1", "option2": "value2", "option3": "value3"}
代码:
import json
options = json.loads(conf['OPTIONS'])