python ConfigParser:从字符串读取配置

python ConfigParser:从字符串读取配置,python,string,replace,newline,configparser,Python,String,Replace,Newline,Configparser,我想解析从服务接收的配置字符串,并读取每个参数。 字符串结果是[section 1],var1=111,var2=222 我的代码: #!/usr/bin/python import ConfigParser import io [...] result = decoded['result'] result = result.replace(',', '\n'); print result config = ConfigParser.RawConfigParser(allow_no_valu

我想解析从服务接收的配置字符串,并读取每个参数。 字符串结果是[section 1],var1=111,var2=222

我的代码:

#!/usr/bin/python

import ConfigParser
import io
[...]

result = decoded['result']
result = result.replace(',', '\n');
print result
config = ConfigParser.RawConfigParser(allow_no_value=True)
config.readfp(io.BytesIO(result))
print config.get("section 1", "var2")
print config.get("section 1", "var1")
使用:

res = """
[section 1]
var1 = 111
var2 = 222
"""
它工作正常,所以我认为结果有问题。替换“,”,“\n”;但如果我打印出来,结果似乎很好。 有什么建议吗

多谢各位
dk

这应该行得通。这是一个unicode错误。下次请显示堆栈跟踪

result = u"""
[section 1]
var1 = 111
var2 = 222
"""
print repr(result)
config = ConfigParser.ConfigParser(allow_no_value=True)
config.readfp(io.StringIO(result))
print config.get("section 1", "var2")
print config.get("section 1", "var1")
输出:

u'\n[section 1]\nvar1 = 111\nvar2 = 222\n'
222
111

ConfigParser对象上有一个名为read_string的方法


亲爱的Xavier,这里的结果u'[第1节]\nvar1=111\nvar2=222'用result=result修复了它。编码'ascii','ignore'这不是修复它的好方法,请参阅我的回答上面的代码抛出下面的错误。globals.CF_currFile=config.read_string'CustomFile','LastCustomFileAccessed'AttributeError:RawConfigParser实例没有属性'read_string'
config = ConfigParser.RawConfigParser(allow_no_value=True)
config.read_string(result)