84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
比如: 'a=b'这样的字符数据,转换成python中的dict类型,{'a':'b'}。
ringa_lee
如果只是'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:
exec
# http://codepad.org/25Zwz7ys namespace = {} exec("a='b';c='d'", namespace) del namespace['__builtins__'] print namespace
但是好像有点不合题意,第二想到的是 str.split,上面已经有了,不作举例。
str.split
然后我丧心病狂地想到 ConfigParser...
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
如果只是'a=b'这样的字符串,那么跟QueryString的语法类似,用Python的urlparse.parse_qsl函数就可以搞定:
我假设你有一堆这种数据,要存储到同一个字典里(否则你的问题就没什么意义了):
第一想到的是
exec
:但是好像有点不合题意,第二想到的是
str.split
,上面已经有了,不作举例。然后我丧心病狂地想到
ConfigParser
...dict(a=1) 是可以成这样的 {'a': 1}
请看楼下的,没注意到'a=b'是一个字符串。