ini
档案:
[main]
key_1=1
key_2=2
key_1=3
的Python:
config_parser = ConfigParser()
config_parser.optionxform = str
config_parser.read('config.ini')
for section in config_parser.sections():
for key in dict(config_parser.items(section)):
print key
结果:
key_1
key_2
预期结果:
key_1
key_2
key_1
如何实现这样的结果?
答案 0 :(得分:1)
这是Python 2中的配置解析器工作方式的问题。键值对被转换为字典。这意味着每个密钥必须是唯一的。 如果您有多个键,则“最后一个值获胜”。
在Python 3.5中尝试您的示例,会出现以下错误消息:
pip install configparser
所以不要多次使用相同的密钥。
幸运的是,Python 2有一个backport。只是:
configparser
该库将Python 3.5中更新的
from configparser import ConfigParser
带到Python 2.6-3.5。
现在,使用这样:
var myurls = [
"http://example.com/grape.php",
"http://example.com/apple.php",
"http://example.com/orange.php",
"http://example.com/banana.php"];
这是Wikipedia关于重复的说法:
重复名称
大多数实现仅支持在一个部分中具有一个具有给定名称的属性。第二次出现属性名称可能会导致中止,可能会被忽略(并且值被丢弃),或者它可能会覆盖第一次出现(丢弃第一个值)。某些程序使用重复的属性名来实现多值属性。
对具有相同名称的多个部分声明的解释也各不相同。在一些实现中,重复的部分简单地将它们的属性合并在一起,就像它们连续发生一样。其他人可能会中止,或忽略INI文件的某些方面。