2016-03-31 10 views
0

一覧表示しますPythonのLOBを使用し

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

私は文字列namesとしてSQL応答次き:

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

あなたはそれがフォーマットされています見ることができるように。私は

(私は何回が、少なくとも1つの時間を気にしない)例Mikeのために少なくとも1回の内部リストであるかどうかを確認するために、

\\'Mike\\':\\'Mike\\'\n\\'John\\'...とそうでしょう:それはactualyのようにフォーマットされます

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

はので、私は単にリストを反復処理し、

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

任意のアイデア方法を求めることができる。そのような何かを持っているのが好き私はそれをすることができますか?

感謝

編集:

私が行うとき:

list = names.split() 

私は、あるリストを受け取り、ほとんど私はそれをしたいが、どのように、まだこのような一見内の要素! :

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

これはあなたの質問に対する回答ではありませんが、リストの中に要素が存在するかどうかをもっと「ピジョンソニック」な方法でテストすることができます: '' Mike 'in l: ... ' – user2340612

+0

メイン問題は:私はこのフォーマットされたStringのリストを作る方法を知らない... – Constantine

答えて

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

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

を削除するために最終的なクリーンアップを行うことができますこれを試してみてください:

+0

"\\ 'ビジネスはmysqlがエスケープすることによって引き起こされる'これは私が知らなかったものです。この情報を使って、私は単に ""を分けることができます。ありがとう – 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 

あなたが名前のリストを持っている場合、\\

のビジネスは、エスケープのmysqlによって引き起こされる「あなたの結果をこのように維持するか、空の文字列

clean_list = list(filter(lambda x: x!='', list_of_names)) 
関連する問題