configparser中的多维字典

时间:2016-04-27 15:31:26

标签: python dictionary configparser

是否可以使用缩进来使用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,
    }

2 个答案:

答案 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'])