これは、Python 2のconfigパーサーの動作の問題です。キーと値のペアは辞書に変換されます。つまり、各キーは一意でなければなりません。 複数のキーがある場合、「最後の値が勝ちます」。 Pythonの3.5で、あなたの例を試し
、このエラーメッセージを表示します。
DuplicateOptionError: While reading from 'config.ini' [line 4]:
option 'key_1' in section 'main' already exists
だから、同じキーを複数回使用しないでください。
幸いなことに、ちょうどPythonの2のためのバックポートがあります:
pip install configparser
このライブラリは、Python 2.6から3.5へのPython 3.5から更新configparser
をもたらします。
さて、このように使用:
ほとんどの実装では、唯一の指定された名前のプロパティを1つ持つサポート
重複名:
from configparser import ConfigParser
これはWikipediaは重複について言っていることですセクションで。プロパティ名の2番目のオカレンスは中止を引き起こす可能性があり、無視され(そして破棄される)、最初のオカレンス(最初の値は破棄されます)をオーバーライドする可能性があります。一部のプログラムでは、重複プロパティ名を使用して複数値プロパティを実装しています。
複数のセクション宣言を同じ名前で解釈することも異なります。いくつかの実装では、重複セクションは、あたかも連続しているかのように、それらのプロパティを単にマージします。他の人は、INIファイルのいくつかの側面を中止したり、無視したりすることがあります。
私にとっては解決策ではありません。このアクションの主なポイントは、設定ファイルの重複をチェックして表示することです。 – oleksii
重複はエラーとみなされます。間違ったiniファイルをチェックしていますか? –
重複はエラーとみなされます。エラーではありません。 ConfigParserは重複してスキップされ、最後のキーと値のペアのみが表示されます。 (Python 2.7で) – oleksii