Ceci est un problème de fonctionnement de l'analyseur de configuration de Python 2. Les paires clé-valeur sont converties en dictionnaire. Cela signifie que chaque clé doit être unique. Si vous avez plusieurs clés, la "dernière valeur gagne".
Essayer votre exemple en Python 3.5, donne ce message d'erreur:
DuplicateOptionError: While reading from 'config.ini' [line 4]:
option 'key_1' in section 'main' already exists
donc ne pas utiliser les mêmes clés à plusieurs reprises.
Heureusement, il y a un backport pour Python 2. Just:
pip install configparser
Cette bibliothèque apporte la configparser
mise à jour de Python 3.5 à Python 2.6 à 3.5.
Maintenant, utilisez comme ceci:
from configparser import ConfigParser
C'est ce que Wikipedia dit au sujet des doublons:
Les noms en double
La plupart des implémentations prennent en charge que d'avoir une propriété avec un nom donné dans une section. La deuxième occurrence d'un nom de propriété peut provoquer un abandon, elle peut être ignorée (et la valeur rejetée), ou elle peut remplacer la première occurrence (avec la première valeur rejetée). Certains programmes utilisent des noms de propriétés en double pour implémenter des propriétés à valeurs multiples.
L'interprétation de plusieurs déclarations de section avec le même nom varie également. Dans certaines implémentations, les sections dupliquées fusionnent simplement leurs propriétés ensemble, comme si elles se produisaient de manière contiguë. D'autres peuvent abandonner ou ignorer certains aspects du fichier INI.
Ce n'est pas une solution pour moi. Le point principal de cette action est de vérifier les doublons dans les fichiers de configuration et de les montrer – oleksii
Les doublons sont supposés être une erreur. Vérifiez les fichiers ini erronés? –
Les doublons sont censés être une erreur - ce n'est pas une erreur. ConfigParser est ignoré et affiche uniquement la dernière paire valeur/clé. (En Python 2.7) – oleksii