2010-12-16 4 views
2

Как преобразовать строку в списокпреобразования строки в список

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

Я хочу получить кортеж внутри списка. поэтому мой новый список будет:

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

Я пользователь eval(string), но это не работает для моего случая.

Спасибо.

+1

Строка слишком близка к Python или JSON для того, чтобы она не была, но это не так. Я предполагаю, что вы делаете что-то простое, но очень сложным способом. Возможно, вам было бы лучше спросить, как решить вашу актуальную проблему, с примерами кода того, что вы делаете, вместо того, чтобы просто просить помощи по конкретной проблеме, с которой вы сейчас боретесь. Похоже, вы пытаетесь решить проблему неправильно. Кроме того, ваш желаемый результат - синтаксическая ошибка, так что это явно не то, что вы хотите вообще. – 2010-12-16 09:54:34

ответ

0

Я бы сказал, используйте регулярные выражения.

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

решаемые подобное одно a while back, но вопрос не вполне дубликат. Возможно, вы захотите также работать с ast.literal_eval().

Смежные вопросы