Как распечатать унифицированный словарь Python в цикле for

Я пытаюсь распечатать один унифицированный словарь Python с деталями раздела из файла Config.ini, но, к сожалению, получаю отдельные списки или только окончательный словарь.

Я хотел бы получить некоторую помощь от вас, ребята.

config_path = r"<Path>\Config.ini"

    dict = {}

    config = ConfigParser.ConfigParser()
    config.read(config_path)
    sections = config.sections()

    for section in sections:
        sql_query = config.get(section, 'SQL')
        limit = config.get(section, 'Limit')
        description = config.get(section, 'Description')
        section_name = section

        dict = {'Query': sql_query,
                'Limit': limit,
                'Description': description,
                'Section': section_name}

    print dict

person James    schedule 18.12.2015    source источник


Ответы (1)


Вы переопределяете свой словарь в каждом цикле.

Версия 1: Список диктовок

config = ConfigParser.ConfigParser()
config.read(config_path)
sections = config.sections()

config_sections = []
for section in sections:
    config_sections.append(
        {'Query': config.get(section, 'SQL'),
         'Limit': config.get(section, 'Limit'),
         'Description': config.get(section, 'Description'),
         'Section': section})

print config_sections

Версия 2: Dict со списками

config = ConfigParser.ConfigParser()
config.read(config_path)
sections = config.sections()

config_dict = {}
for section in sections:
    for name, value in [('Query', config.get(section, 'SQL')),
                        ('Limit', config.get(section, 'Limit')),
                        ('Description', config.get(section, 'Description')),
                        ('Section', [section])]:
        config_dict.setdefault(name, []).append(value)
print config_dict
person Mike Müller    schedule 19.12.2015
comment
Спасибо Майк за вашу помощь :), но согласно вашему коду я получаю этот вывод {Query[all_sections_queries], Limit[all_sections_limit]...}. Мне нужен этот вывод {[query1,limit1,description1,section1],[query2,limit2,description2,section2],[query3,limit3,description3,section3]} - person James; 19.12.2015
comment
Я думал, это то, что вы хотите. У вас есть список с одним словарем на раздел? - person Mike Müller; 19.12.2015
comment
Извините за недоразумение, это именно то, что мне нужно. - person James; 19.12.2015
comment
Вы можете принять ответ, если он решит вашу проблему. - person Mike Müller; 19.12.2015