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

比如:

'a=b'这样的字符数据,转换成python中的dict类型,{'a':'b'}。

回答:

如果只是'a=b'这样的字符串,那么跟QueryString的语法类似,用Python的urlparse.parse_qsl函数就可以搞定:

import urlparse

ret = dict(urlparse.parse_qsl('a=b'))

回答:

我假设你有一堆这种数据,要存储到同一个字典里(否则你的问题就没什么意义了):

>>> import sys

>>> dict(l.split('=', 1) for l in sys.stdin)

回答:

第一想到的是 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'}

回答:

dict(a=1) 是可以成这样的 {'a': 1}

请看楼下的,没注意到'a=b'是一个字符串。

回答:

# coding: utf-8

l = dict()

s = "a=b".split("=")

l[s[0]] = s[1]

print l

以上是 python 如何把'a=b'这样的字符解析成dict类型 的全部内容, 来源链接: www.h5w3.com/163177.html

回到顶部