2010-12-16 31 views
2

zur Liste Wie Zeichenfolge konvertierenUmwandlung String

str = '[([email protected], amit, laspal,1,100,50), 
     ([email protected],None,None,None,None,None), 
     ([email protected],laspal, amit,None,None,None)]' 

I Tupel erhalten innerhalb der Liste auflisten möchten. so wird meine neue Liste sein:

list =[([email protected], amit, laspal,1,100,50), 
     ([email protected],None,None,None,None,None), 
     ([email protected],laspal, amit,None,None,None)] 

kann ich Benutzer eval(string) aber nicht für meinen Fall nicht funktioniert.

Danke.

+1

Die Zeichenfolge ist viel zu nah an Python oder JSON, um es nicht zu sein, aber es ist nicht. Ich nehme an, Sie tun etwas Einfaches, aber auf eine sehr komplexe Art und Weise. Vielleicht wäre es besser für Sie, zu fragen, wie Sie Ihr tatsächliches Problem lösen können, mit Codebeispielen für das, was Sie tun, anstatt nur nach Hilfe für das spezifische Problem zu fragen, mit dem Sie gerade zu kämpfen haben. Es klingt, als ob Sie versuchen, ein Problem auf die falsche Art zu lösen. Auch Ihr gewünschtes Ergebnis ist ein Syntaxfehler, also ist das eindeutig nicht das, was Sie sich wünschen. –

+0

Oh ok. Ich verstehe. Die Saite, die ich bekam, war nicht in meiner Hand. Nach dem Ändern der Zeichenfolge kann ich ast.literal_eval (string) für meinen Zweck verwenden. – laspal

+3

Und weisen Sie keinen Werten wie Str und Liste Werte zu. –

Antwort

0

Ich würde sagen, verwenden Sie reguläre Ausdrücke.

import re 
p = re.compile('(([\[email protected]]+),(\w+),(\w+),(\d+),(\d+))') 
f = p.finditer("yourstring") 
result = [] 
for e in f: 
    result.append(e.groups()[1:]) 
0

Gelöst einen ähnlichen a while back, aber die Frage ist nicht ganz ein Duplikat. Vielleicht möchten Sie auch dort arbeiten ast.literal_eval().