Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sqlite3错误解释参数_Python_Sqlite - Fatal编程技术网

Python sqlite3错误解释参数

Python sqlite3错误解释参数,python,sqlite,Python,Sqlite,我正试图在SQL查询中输入一个列名 import sqlite3 db = sqlite3.connect('path/to/my/database.sqlite') cur = db.cursor() def get_val(field): return cur.execute(''' SELECT x, y, :field FROM literal_table WHERE :valid_field_name > 0 A

我正试图在SQL查询中输入一个列名

import sqlite3
db = sqlite3.connect('path/to/my/database.sqlite')
cur = db.cursor()

def get_val(field):
    return cur.execute('''
        SELECT x, y, :field FROM literal_table
        WHERE 
            :valid_field_name > 0 AND
            (some other conditions)
        GROUP BY x, y''',
        {'field': field}).fetchall()

get_val('valid_field_name')
但是当我执行代码时,python返回的不是从列中获取值,而是

[(x1, y1, u'valid_field_name'), (x2, y3, u'valid_field_name'), ...]
我知道不能对表名进行编码,但文档中有一些列名被参数化的例子。我已经拼凑了一个字符串格式的解决方案(代码用于私有数据处理,所以SQL注入不是问题),但我需要了解发生了什么


我正在使用Python 2.7.3,SQLite用提供的值替换参数。 在您的情况下,这与:

从文本表格中选择x,y,'valid_field_name'
其中'valid_field_name'>0和(某些其他条件)
按x,y分组

换句话说,字符串就是字符串;不可能将参数作为列名。

我看不出问题所在,代码正在执行应该执行的操作。请注意,您正在返回
cur.execute
sql查询的结果,这是一个元组。文档中有哪些示例?看起来我读文档太快了<代码>选择?存在,但没有
选择?来自…
。另外,谢谢@ManuelGutierrez。我已经添加了.fetchall()并编辑了这个问题。