键,.INI文件中一个标头下的值

时间:2019-02-20 13:50:27

标签: python dictionary configparser

我在Python中有这段代码,给定一个字典,它在config.ini文件中写入key:value字段。问题在于它一直在为每个字段写标题。

import configparser

myDict = {'hello': 'world', 'hi': 'space'}

def createConfig(myDict):
    config = configparser.ConfigParser()

    # the string below is used to define the .ini header/title
    config["myHeader"] = {}
    with open('myIniFile.ini', 'w') as configfile:
        for key, value in myDict.items():
            config["myHeader"] = {key: value}
            config.write(configfile)

这是.ini文件的输出:

[myDict]
hello = world

[myDict]
hi = space

我如何摆脱双标题[myDict]并得到这样的结果

[myDict]
hello = world
hi = space

在Python中创建.ini的代码摘自this question

3 个答案:

答案 0 :(得分:3)

您获得两倍的标题,因为您两次写入配置文件。您应该构建一个完整的字典并将其写入一次:

def createConfig(myDict):
    config = configparser.ConfigParser()

    # the string below is used to define the .ini header/title
    config["myHeader"] = {}
    for key, value in myDict.items():
        config["myHeader"][key] = value
    with open('myIniFile.ini', 'w') as configfile:
        config.write(configfile)

答案 1 :(得分:1)

这将满足您的要求:

import configparser

myDict = {'hello': 'world', 'hi': 'space'}

def createConfig(myDict):
    config = configparser.ConfigParser()

    # the string below is used to define the .ini header/title
    config["myHeader"] = {}
    with open('myIniFile.ini', 'w') as configfile:
        config["myHeader"].update(myDict)
        config.write(configfile)

答案 2 :(得分:0)

您可以这样做:

def createConfig(myDict):
    config = configparser.ConfigParser()
    config["myIniFile"] = myDict
    with open('myIniFile.ini', 'w') as configfile:
        config.write(configfile)