But it seems a bit inconsistent with the meaning of the question. The second thing that comes to mind is str.split, which is already mentioned above, so I won’t give an example.
Then I thought crazily 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'}
If it is just a string like 'a=b', then the syntax is similar to QueryString, and you can use Python's urlparse.parse_qsl function:
I assume you have a bunch of data and want to store them in the same dictionary (otherwise your question will be meaningless):
The first thing that comes to mind is
exec
:But it seems a bit inconsistent with the meaning of the question. The second thing that comes to mind is
str.split
, which is already mentioned above, so I won’t give an example.Then I thought crazily
ConfigParser
...dict(a=1) can be like this {'a': 1}
Please look downstairs, I didn't notice that 'a=b' is a string.