python - PostgreSQL SELECT 列名以编程方式在 python 中

标签 python postgresql psycopg2

我想以编程方式在表中传递来自 python(psycopg2) 的几列。

  cursor.execute("SELECT col1,col2,col3...coln FROM %s ORDER BY datetime ASC" %mytable)

列名 col1,col2,col3...coln 的长度可以是 100,并且每次调用 cursor.execute() 时都会更改。

最佳答案

您已经在使用字符串插值,因此您可以对列名执行相同的操作。将您的列名放在一个数组中,并在格式化查询时加入它们:

columns = ['col1', 'col2', 'col3']
cursor.execute("SELECT %s FROM %s ORDER BY datetime ASC" % (','.join(columns), mytable))

重要的是,列由您严格控制,而不是根据用户输入生成,因为这会导致 SQL 注入(inject)攻击。

关于python - PostgreSQL SELECT 列名以编程方式在 python 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50850843/

相关文章:

javascript - 将 JSON 数组从 Django View 返回到模板

python - 列表子集的函数列表

django - 通过 psycopg2 连接执行的查询数

database - pgsql2shp postgresql 错误

python - TypeError : the JSON object must be str, 不是 'DetailedResponse'

python - E : Unable to find a source package for psycopg2 or use pip with virtualenv

python - tornado + momoko 不处理连接

python - 如何使用虚拟环境突出啤酒亮点

python - 在 python 中模拟整个模块

sql - 表名中的句点导致错误