use*_*318 3 python config configparser
随机出现此错误,有时会出现,有时不会:
for i in range(1,32):
sezione = "GRP"+str(i)
dizionarioGRP = dict(config.items(sezione))
print int(dizionarioGRP['r'])
Run Code Online (Sandbox Code Playgroud)
这是错误
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/home/pi/gigi.py", line 436, in run
self.esegui()
File "/home/pi/gigi.py", line 307, in esegui
L.gruppo(idgruppo)
File "/home/pi/gigi1.py", line 282, in gruppo
dizionarioGRP = dict(config.items(sezione))
File "/usr/lib/python2.7/ConfigParser.py", line 655, in items
for option in options]
File "/usr/lib/python2.7/ConfigParser.py", line 663, in _interpolate
if value and "%(" in value:
TypeError: argument of type 'int' is not iterable
Run Code Online (Sandbox Code Playgroud)
为什么它引用为int,如果我将它转换为字符串?
代码中的某处你正在这样做:
config.set('something', 'something', 0) # or some integer
Run Code Online (Sandbox Code Playgroud)
或者,您可以选择在ConfigParser构造函数中传入非字符串值dict.
这与文档所说的完全相反:
如果给定部分存在,则将给定选项设置为指定值; 否则引发NoSectionError.虽然可以将RawConfigParser(或原始参数设置为true的ConfigParser)用于非字符串值的内部存储,但只能使用字符串值实现完整功能(包括内插和输出到文件).
因此,无论何时打电话ConfigParser.set,请确保包装您正在设置的内容str.否则,当它遍历所有值时会抛出错误_interpolate.(我认为这种行为的某些部分是一个错误,但它可能保持原样以便向后兼容.或者某些东西.)
另一个好处是使用如果你试图设置一个非字符串值SafeConfigParser将抛出一个TypeError,所以你知道这不会再发生.
| 归档时间: |
|
| 查看次数: |
1396 次 |
| 最近记录: |