2016-03-31 11 views
0

Verwendung:Python LOB zur Liste

cur.execute(SQL) 
response= cur.fetchall() //response is a LOB object 
names = response[0][0].read() 

ich habe folgende SQL Antwort als String names:

'Mike':'Mike' 
'John':'John' 
'Mike/B':'Mike/B' 

Wie Sie es formatiert kommt zu sehen. Es ist actualy formatiert wie: \\'Mike\\':\\'Mike\\'\n\\'John\\'... und so weiter

, um zu überprüfen, ob zum Beispiel Mike innerhalb Liste ist mindestens ein Mal (i egal, wie oft, aber zumindest einmal)

würde ich wie so etwas haben:

l = ['Mike', 'Mike', 'John', 'John', 'Mike/B', 'Mike/B'], 

so konnte ich einfach über die Liste iterieren und

for name in l: 
    'Mike' == name: 
     do something 

Irgendwelche Ideen fragen, wie das könnte ich machen?

Vielen Dank

Edit:

Wenn ich tun:

list = names.split() 

ich die Liste erhalten, die fast ist, wie ich es will, aber die Elemente im Inneren aussehen wie diese immer noch !!! :

list = ['\\'Mike\\':\\'Mike\\", ...] 
+0

das ist keine Antwort auf Ihre Frage, aber Sie können in einer Liste in einer „pythonic“ Art und Weise, wie dies für das Vorhandensein eines Elements testen: 'wenn‚Mike‘in l: ... ' – user2340612

+0

Die wichtigsten Problem ist: Ich weiß nicht, wie man aus dieser formatierten Zeichenkette eine Liste macht ... – Constantine

Antwort

1
names = ['\\'Mike\\':\\'Mike\\", ...] 

for name in names: 
    if "Mike" in name: 
     print "Mike is here" 

Die \\ zu entfernen ‚Geschäft wird von mysql Flucht der verursacht‘

, wenn Sie eine Liste von Namen haben versuchen Sie dies:

my_names = ["Tom", "Dick", "Harry"] 
names = ['\\'Mike\\':\\'Mike\\", ...] 

for name in names: 
    for my_name in my_names: 
     if myname in name: 
     print myname, " is here" 
+0

"Das \\ 'Geschäft wird verursacht, indem mysql der' 'Das ist, was ich nicht wusste. Mit diesen Informationen kann ich einfach '' 'ausspalten. Vielen Dank – Constantine

1
import re 
pattern = re.compile(r"[\n\\:']+") 
list_of_names = pattern.split(names) 
# ['', 'Mike', 'Mike', 'John', 'John', 'Mike/B', ''] 
# Quick-tip: Try not to name a list with "list" as "list" is a built-in 

Sie können Ihre Ergebnisse auf diese Weise behalten oder eine endgültige Bereinigung tun, um leere Strings

clean_list = list(filter(lambda x: x!='', list_of_names))