Python Glossary English

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Сообщить о неточности