gpt4 book ai didi

python - 在 psycopg2 中传递参数

转载 作者:行者123 更新时间:2023-11-29 12:04:51 26 4
gpt4 key购买 nike

我正在尝试使用 psycopg2 访问 PostgreSQL:

sql = """
SELECT
%s
FROM
table;
"""

cur = con.cursor()
input = (['id', 'name'], )
cur.execute(sql, input)

data = pd.DataFrame.from_records(cur.fetchall())

但是,返回的结果是:

             0
0 [id, name]
1 [id, name]
2 [id, name]
3 [id, name]
4 [id, name]

如果我尝试访问单个列,它看起来像:

     0
0 id
1 id
2 id
3 id
4 id

列名周围的引号似乎有问题(不应存在的单引号):

In [49]: print cur.mogrify(sql, input)

SELECT
'id'
FROM
table;

但我正在关注文档:http://initd.org/psycopg/docs/usage.html#

谁能告诉我这是怎么回事?非常感谢!!!

最佳答案

使用 AsIs 扩展

import psycopg2
from psycopg2.extensions import AsIs

column_list = ['id','name']
columns = ', '.join(column_list)

cursor.execute("SELECT %s FROM table", (AsIs(columns),))

并且 mogrify 将显示它没有引用列名并将它们按原样传递。

关于python - 在 psycopg2 中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30676422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com