52

タプルのタプルまたは辞書のタプルではなく、リストで fetchall 操作の結果を取得したいと考えています。例えば、

cursor = connection.cursor() #Cursor could be a normal cursor or dict cursor
query = "Select id from bs"
cursor.execute(query)
row = cursor.fetchall()

さて、問題は、結果の行が ((123,),(234,)) または ({'id':123}, {'id':234}) のいずれかであることです。私が探しているのは (123,234) または [ 123,234]。結果セットの解析を節約できれば最高です。前もって感謝します

4

7 に答える 7

84

そして、リスト内包表記はどうですか? 結果が次の場合((123,), (234,), (345,)):

>>> row = [item[0] for item in cursor.fetchall()]
>>> row
[123, 234, 345]

結果が次の場合({'id': 123}, {'id': 234}, {'id': 345}):

>>> row = [item['id'] for item in cursor.fetchall()]
>>> row
[123, 234, 345]
于 2012-10-12T21:35:12.037 に答える
1

フィールドが 1 つしかない場合は、これを使用してデータベースからリストを作成できます。

def getFieldAsList():
    kursor.execute("Select id from bs")
    id_data = kursor.fetchall()
    id_list = []
    for index in range(len(id_data)):
        id_list.append(id_data[index][0])
    return id_list
于 2013-02-28T08:25:50.030 に答える