Python 3.2+configparserисключение
configparser.DuplicateOptionError
исключения
Исключение строгого парсера: ключ встречается в секции дважды при чтении одного файла, строки или словаря.
Синтаксис
except configparser.DuplicateOptionError as e: e.section, e.option, e.lineno
Ловушка — регистр: Host и host после приведения к нижнему регистру становятся одним ключом, и это тоже дубль. С strict=False ошибки нет, а побеждает последнее значение — тихо, без предупреждения. Чувствительность к регистру возвращает parser.optionxform = str.
Примеры
import configparser
text = "[srv]\nHost = a\nhost = b\n"
try:
configparser.ConfigParser().read_string(text)
except configparser.DuplicateOptionError as e:
print(e.option, e.lineno) # → host 3
cs = configparser.ConfigParser()
cs.optionxform = str
cs.read_string(text)
print(dict(cs["srv"])) # → {'Host': 'a', 'host': 'b'}
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности