我在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。
答案 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)