我正在尝试初始化配置文件
import ConfigParser
config = ConfigParser.ConfigParser()
config['Testing'] = {"name": "Yohannes", "age": 10}
with open("test.ini", "w") as configFile:
config.write(configFile)
但它不断抛出此错误
Traceback (most recent call last):
File "C:\Users\user\workspace\ObjectDetection\src\confWriter.py", line 9, in <module>
config['Testing'] = {"name": "Yohannes", "age": 10}
AttributeError: ConfigParser instance has no attribute '__setitem__'
我到处搜索但没找到任何东西
答案 0 :(得分:3)
teivaz的答案是正确的,但可能不完整。你在使用ConfigParser对象的方式在Python 3(docs)中几乎是正确的,但不是Python 2(docs)。
这是Python 2:
import ConfigParser
config = ConfigParser.ConfigParser()
config.add_section('Testing')
config.set('Testing', 'name', 'Yohannes')
config.set('Testing', 'age', '10') # note: string value for '10'!
Python 3:
import configparser # note: lowercase module name
config = configparser.ConfigParser()
config['Testing'] = {'name': 'Yohannes', 'age': '10'}
注意:如果你给它一个非字符串值(例如ConfigParser.set()
),Python 2&#39; config.set('Testing', 'age', 10)
不会抱怨,但它会抛出一个TypeError
当你试图检索它。当您使用带有非字符串值的TypeError
方法时,Python 3将抛出set()
,但它会静默地将值转换为具有__setitem__
访问权限的字符串。 E.g:
config['Testing'] = {'name': 'Yohannes', 'age': 10} # int value for 'age'
config['Testing']['age'] # returns '10' as a string, not an int
答案 1 :(得分:0)
你根本就没有正确使用它。 Here你可以找到例子。
config = ConfigParser.ConfigParser()
config.add_section('Testing')
config.set('Testing', 'name', 'Yohannes')
config.set('Testing', 'age', 10)
关于您收到的错误,您可以阅读here:
object.__setitem__(self, key, value)
被要求实施self[key]
的作业。
答案 2 :(得分:-1)
config.Testing = {"name": "Yohannes", "age": 10}