Это проблема, как работает парсер конфигурации в Python 2. Пара ключей-значений преобразуется в словарь. Это означает, что каждый ключ должен быть уникальным. Если у вас несколько ключей, выигрывает «последнее значение».
Попытка ваш пример в Python 3.5, дает следующее сообщение об ошибке:
DuplicateOptionError: While reading from 'config.ini' [line 4]:
option 'key_1' in section 'main' already exists
Так что не использовать одни и те же клавишу несколько раз.
К счастью, есть портировать на Python 2. Просто:
pip install configparser
Эта библиотека приносит обновленный configparser
с Python 3.5 на Python 2.6-3.5.
Теперь, используйте так:
from configparser import ConfigParser
Это то, что Wikipedia говорит о дубликатах:
Повторяющиеся имена
Большинство реализаций поддерживают только имея одно свойство с заданным именем в разделе. Второе вхождение имени свойства может привести к прерыванию, оно может быть проигнорировано (и отброшено значение), или оно может переопределить первое вхождение (при первом сброшенном значении). Некоторые программы используют двойные имена свойств для реализации многозначных свойств.
Интерпретация объявлений нескольких разделов с одинаковым именем также меняется. В некоторых реализациях дублирующие разделы просто объединяют свои свойства вместе, как если бы они возникали смежно. Другие могут прервать или игнорировать некоторые аспекты файла INI.
Это не решение для меня. Основной момент этого действия - проверить дубликаты в файлах конфигурации и показать его. – oleksii
Предполагается, что дубликаты должны быть ошибкой. Проверяют ли ошибочные файлы ini? –
Предполагается, что дубликаты должны быть ошибкой - это не ошибка. ConfigParser пропускает дубликаты и показывает только последнюю пару ключ-значение. (В Python 2.7) – oleksii