0

我有这个代码:

   while i<len(line):
        if re.findall(pattern, line[i]):
            k,v = line[i].split('=')
            print k
            token = dict(k=v)
            print token
            break

我得到的结果是:

ptk
{'k': 'ptk_first'}

如何使这几行代码更好,字典看起来像这样:

{'ptk': 'ptk_first'}
4

4 回答 4

2
for line in lines:
    if re.match(pattern, line):
        k,v = line.split('=')
        token = {k:v}
        print token
于 2012-10-08T23:10:57.330 回答
2

像这样的东西:

lines="""\
key1=data on the rest of line 1
key2=data on the rest of line 2
key3=data on line 3"""

d={}
for line in lines.splitlines():
    k,v=line.split('=')
    d[k]=v

print d 
于 2012-10-08T23:32:46.663 回答
1
In [112]: line="ptk=ptk_first" 

In [113]: dict([line.split("=")])
Out[113]: {'ptk': 'ptk_first'}

对于您的代码:

for line in lines:
    if re.findall(pattern, line):
        token = dict([line.split("=")])
        print token
于 2012-10-08T23:13:56.160 回答
1

使用正则表达式你可以试试这个:

>>> import re
>>> lines="""
... ptk=ptk_first
... ptk1=ptk_second
... """
>>> dict(re.findall('(\w+)=(\w+)',lines,re.M))
{'ptk1': 'ptk_second', 'ptk': 'ptk_first'}
于 2012-10-09T06:01:16.417 回答