使用psycopg2查询将数据从表复制到csv文件

时间:2016-06-15 14:16:17

标签: python sql postgresql psycopg2

我有一个使用

的csv文件的路径
cur1.execute("select path from t2");
path = cur1.fetchone()

我知道要使用psycopg2对csv文件执行复制,如下所示:

cur2.execute("COPY (SELECT id,a,b,c FROM t1,t2 WHERE a >= t2.d ) TO path[0] DELIMITER ',' CSV;")

我收到此错误:psycopg2.ProgrammingError: syntax error at or near "path"

提前致谢!

1 个答案:

答案 0 :(得分:1)

这里实际上有两个问题。

首先,你必须用'来包围文件名,这就是错误信息所指示的内容。

第二个是,如果你这样做,你的文件将被命名为path [0],这可能不是你想要的,因为你的数据库不知道是什么路径并访问它(这就是我试图说的)。因此,在将查询文件发送到数据库之前,必须在查询中插入文件名。见http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries