все Python 3configparserисключение
configparser.InterpolationSyntaxError
исключения
Исключение: в значении стоит % (или $ у расширенной интерполяции), за которым не следует правильная ссылка.
Синтаксис
except configparser.InterpolationSyntaxError as e: ...
Типичный случай — '50%', URL с %20 или пароль с процентом в INI-файле. Файл читается без ошибок, а падает get(). Лечится удвоением %% в файле, get(..., raw=True) или ConfigParser(interpolation=None). При записи через set() та же строка даёт не это исключение, а ValueError.
Примеры
import configparser
cfg = configparser.ConfigParser()
cfg.read_string("[web]\nurl = /a%20b\n")
try:
cfg.get("web", "url")
except configparser.InterpolationSyntaxError as e:
print(e) # → '%' must be followed by '%' or '(', found: '%20b'
print(cfg.get("web", "url", raw=True)) # → /a%20b
import configparser
cfg = configparser.ConfigParser()
cfg.add_section("web")
try:
cfg.set("web", "rate", "5%")
except ValueError as e:
print(type(e).__name__) # → ValueError
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности