python configparser在方括号内写入整数

时间:2015-12-29 13:27:19

标签: python configparser

我正在使用Python的ConfigParser(Python 3.4)阅读配置文件。我的值都是整数,例如

key1 = 11
key2 = 22

当我编写配置文件后,将其读入Config对象后,使用

with open('settings.ini', 'w') as configfile:
    Config.write(configfile)

我的文件最终看起来像这样:

key1 = ['11']
key2 = ['22']

为什么文件是这样写的,而不是原来的那样?

key1 = 11
key2 = 22

2 个答案:

答案 0 :(得分:0)

因为您传递的是列表而不是列表的值?

您应该通过以下方式设置值:

config.set('section1', 'key1', key_val_variable)

您可以尝试打印' key_val_variable'

请尝试:

import ConfigParser

config = ConfigParser.ConfigParser()
config.read("settings.ini")

key_var = ['key1']

if not config.has_section('section1'):
   config.add_section('section1')

config.set('section1', 'key1', key_var)
config.set('section1', 'key2', key_var[0])

with open("settings.ini", 'wb') as configfile:
   config.write(configfile)

答案 1 :(得分:0)

我发现了我的问题。在我的800多个选项的长列表中,我有一些重复的键,这破坏了ini文件的解析。当我删除重复的密钥时,所有密钥都按预期工作。