2016-03-22 7 views
1

結果、私のpythonに新しいですし、一般ごとにストアド・プロシージャを実行するためのセットアップpymssqlを持っている例が見つかりました:ビルドカンマ区切りのリストが

cur.execute("EXEC [dbo].[GetIPList]") 

row = cur.fetchone() 
while row: 
    print "%s" % (row[0]) 
    row = cur.fetchone() 

私はカンマで変数を構築したいですすべての行の区切りリスト。

"cur.fetchone"ではなく "cur.fetchall"を使用すると、サブプロセスでの使用方法がわからないタプルが表示されます。

ここで取り組むのに最適なアプローチは何ですか?

+1

' ''(tuple_of_rows)' – MaxNoe

+0

に参加し、グイド・ヴァンロッサムを引用する: '誰ももうPythonの2を使用してはなりません'。 Pythonを初めて使用していて、古いコードに頼る必要がない場合は、python 3を使用してください。 – MaxNoe

+0

@MaxNoe、close、しかしそれほどではありませんが、各行自体はタプルです。タプルのタプル(またはタプルのリスト)を持つその正確なコードは、まったく正しく出力されません。 –

答えて

1

このような何か:

s = ','.join([ r[0] for r in cur.fetchall() ]) 
+0

リストの理解は必要ありません。ジェネレータで十分です。 – MaxNoe

+0

@MaxNoe、...確かに、どちらもうまくいきますが、前者はそのまま分解し検査することができます。 –

+0

オブジェクトは 'join'によって直接消費されます。なぜリストを作成するのですか?それは不要なシンボルを追加し、不要で潜在的に大きなオブジェクトを作成するだけです。 – MaxNoe

関連する問題