2016-05-31 87 views
0

中包含的值我在使用Django中的原始SQL查詢時遇到了一個問題。Python原始SQL查詢正在返回[['''],]

在views.py,以下函數定義:

def functionSQL(): 

    from django.db import connection 
    cursor = connection.cursor() 
    cursor.execute('select column_name from "table_name" where CONDITION') 
    value = cursor.fetchall() 
    return value 

的值返回爲 [( 'returned_value'),]
代替returned_value

有什麼我在這裏失蹤? 如何從返回的值中刪除不必要的前綴和後綴?

+3

'使用fetchall()'返回結果行的一個列表,其中包含的字段(列)。你的結果似乎只有一行和一個字段。 –

+1

這不是一個Django原始查詢。這是一個原始的sql查詢。如果你打算寫他們。也許不妨說django – e4c5

+0

我可以寫fetchone()而不是fetchall(),但結果仍然是一樣的。 –

回答

1

它們不是前綴後綴.fetchall()的返回值始終是元組列表,無論它是返回單個值還是多個行和列。來自docs

該方法獲取查詢結果集的所有(或全部剩餘)行並返回元組列表。如果沒有更多的行可用,它將返回一個空列表。

話雖這麼說,你可以從你的函數中使用這樣的事情返回一個值:

def functionSQL(): 
    ... 
    value = cursor.fetchall() 
    return value[0][0] if value != [] else value 
+0

感謝百萬... –