2016-05-31 91 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

感谢百万... –