如何使用带有变量的psycopg2连接字符串?

10
我正在尝试使用如下变量连接到Postgres数据库:

cs = "dbname=%s user=%s password=%s host=%s port=%s",(dn,du,dp,dh,dbp)
con = None
con = psycopg2.connect(cs)

然而,我收到了错误信息:
TypeError: argument 1 must be string, not tuple

我需要能够在连接字符串中使用变量。有人知道如何实现吗?

2个回答

16

你的代码目前创建了一个包含字符串和你尝试替换的元组。你需要:

cs = "dbname=%s user=%s password=%s host=%s port=%s" % (dn,du,dp,dh,dbp)

2

您可以直接传递参数而不需要构建连接字符串:

con = psycopg2.connect(
    dbname=dn,
    user=du,
    password=dp,
    host=dh,
    port=dbp,
)

请查看文档,获取更多关于psycopg2.connect的详细信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接