python中字符a如何变成b_python 如何把'a=b'这样的字符解析成dict类型

第一想到的是 exec:

# http://codepad.org/25Zwz7ys

namespace = {}

exec("a='b';c='d'", namespace)

del namespace['__builtins__']

print namespace

但是好像有点不合题意,第二想到的是 str.split,上面已经有了,不作举例。

然后我丧心病狂地想到 ConfigParser...

class toDict(object):

def __new__(self, *data):

if not data:

return {}

import os

import ConfigParser

parser = ConfigParser.ConfigParser()

buf = 'buffer.buf'

f = open(buf, 'w')

f.write("[section_data]" + os.linesep)

for i in data:

f.write(i + os.linesep)

f.close()

parser.read(buf)

items = parser.items("section_data")

ret = {}

for i in items:

ret[i[0]] = i[1]

os.remove(buf)

del parser

return ret

if __name__ == '__main__':

print toDict()

# {}

print toDict("a=b")

# {'a': 'b'}

print toDict("a=b", "c=d", "你好=世界", "1=2")

# {'a': 'b', '1': '2', 'c': 'd', '\xc4\xe3\xba\xc3': '\xca\xc0\xbd\xe7'}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值