【问题标题】:Key, values under one header in .INI file.INI 文件中一个标题下的键、值
【发布时间】:2019-02-20 13:50:27
【问题描述】:

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

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

【问题讨论】:

    标签: python dictionary configparser


    【解决方案1】:

    你得到了两次标题,因为你向配置文件写入了两次。您应该构建一个完整的字典并一次写入:

    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)
    

    【讨论】:

      【解决方案2】:

      这会做你想做的事:

      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)
      

      【讨论】:

      • 这也有效。更少的冗长和更少的代码。格拉齐。
      【解决方案3】:

      你可以这样做:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-08
        • 2012-05-16
        • 1970-01-01
        • 1970-01-01
        • 2020-06-22
        • 1970-01-01
        • 2016-02-25
        • 2018-08-08
        相关资源
        最近更新 更多