Ich habe diesen Code:

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

Und das Ergebnis, das ich bekomme, ist:

ptk
{'k': 'ptk_first'}

Wie man diese paar Codezeilen schöner macht und ein Wörterbuch, das so aussieht:

{'ptk': 'ptk_first'}
0
Vor 9 Okt. 2012 im 03:07

4 Antworten

Beste Antwort
In [112]: line="ptk=ptk_first" 

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

Für Ihren Code:

for line in lines:
    if re.findall(pattern, line):
        token = dict([line.split("=")])
        print token
1
Ashwini Chaudhary 8 Okt. 2012 im 23:13

Etwas wie das:

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 
2
user688635user688635 8 Okt. 2012 im 23:32

Mit Regex können Sie Folgendes versuchen:

>>> import re
>>> lines="""
... ptk=ptk_first
... ptk1=ptk_second
... """
>>> dict(re.findall('(\w+)=(\w+)',lines,re.M))
{'ptk1': 'ptk_second', 'ptk': 'ptk_first'}
1
Myjab 9 Okt. 2012 im 06:01
for line in lines:
    if re.match(pattern, line):
        k,v = line.split('=')
        token = {k:v}
        print token
2
defuz 8 Okt. 2012 im 23:16