【问题标题】:Use psycopg2 query to copy data from a table to a csv file使用 psycopg2 查询将数据从表复制到 csv 文件
【发布时间】:2023-03-14 20:06:01
【问题描述】:

我有一个使用 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"

提前致谢!

【问题讨论】:

  • 您希望 psql 访问您的 python 变量?
  • 我错误地添加了psql标签,我已经删除了。

标签: python sql postgresql psycopg2


【解决方案1】:

这里其实有两个问题。

第一个是你必须用'包围你的文件名,这就是错误消息的含义。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 2016-03-06
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多