Преобразуйте ConfigParser.items ('') к словарю

Как может я преобразовывать результат ConfigParser.items ('раздел') к словарю для форматирования строки как здесь:

import ConfigParser

config = ConfigParser.ConfigParser()
config.read('conf.ini')

connection_string = ("dbname='%(dbname)s' user='%(dbuser)s' host='%(host)s' "
                     "password='%(password)s' port='%(port)s'")

print connection_string % config.items('db')
60
задан 14 June 2014 в 21:33

2 ответа

Вот другой подход с помощью Python 3.7 с configparser и ast.literal_eval:

game.ini

[assets]
tileset = {0:(32, 446, 48, 48), 
           1:(96, 446, 16, 48)}

game.py

import configparser
from ast import literal_eval

config = configparser.ConfigParser()
config.read('game.ini')

# convert a string to dict
tileset = literal_eval(config['assets']['tileset'])

print('tileset:', tileset)
print('type(tileset):', type(tileset))

произвел

tileset: {0: (32, 446, 48, 48), 1: (96, 446, 16, 48)}
type(tileset): <class 'dict'>
1
ответ дан 31 October 2019 в 16:42

Объединяющаяся Michele d'Amico и ответ Kyle (никакой dict), производит менее читаемое, но так или иначе востребованный:

{i: {i[0]: i[1] for i in config.items(i)} for i in config.sections()}
1
ответ дан 31 October 2019 в 16:42

Другие вопросы по тегам:

Похожие вопросы: