Уникальные ключи ConfigParser Python на раздел

Добро пожаловать в StackOverflow.

Для этой цели вам необходимо создать ссылку, например https://telegram.me/YourUsername .

Проверьте Telegram блог для получения дополнительной информации.

8
задан cdleary 13 November 2008 в 20:50
поделиться

1 ответ

ConfigParser не разработан для обработки таких условий. Кроме того, Ваш файл конфигурации не имеет смысла мне.

ConfigParser дает Вам подобную dict структуру для каждого раздела, поэтому при вызове parser.items (раздел) я ожидаю подобный вывод к dict.items (), который является просто списком кортежей ключа/значения. Я никогда не ожидал бы видеть что-то как:

[('spam', 'eggs'), ('spam', 'ham')]

Не говоря уже о, как Вы ожидали бы, что следующее будет вести себя?:

parser.get('Some Section', 'spam')

Который является намеченным способом получить значения.

Если бы Вы хотите сохранить несколько значений для того же ключа, я предложил бы что-то вроде этого в Вашем файле конфигурации:

[Some Section]
spam: eggs, ham

И это в Вашем коде:

spam_values = [v.strip() for v in parser.get('Some Section', 'spam').split(',')]

Конечно, это будет только работать на значения, которые не содержат сами запятые или заключение в кавычки дескриптора. Для этого необходимо использовать более усовершенствованную технику (см. это и это).

Править: Если Вы не возражаете против дополнительной зависимости, Вы могли бы проверить ConfigObj, который исходно поддерживает списки как тип значения.

11
ответ дан 5 December 2019 в 15:27
поделиться
Другие вопросы по тегам:

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