Python 语法错误 - 使用 psycopg2 的 psql 查询中的反斜杠

Python syntax error - backslash in psql queries with psycopg2

我有一个小 python 脚本。我想用库 psycopg2 执行 psql 命令:

query = "\COPY ( select * from 'schema'.structure) TO 'path' DELIMITER ',' CSV HEADER;"

但是 \COPY 有语法错误。 我试图用 ''\ 来改变它,但似乎没有任何效果。我不想使用 cur.copy_from.

有什么建议吗?

如果您想将 psycopg2 用于 COPY 自定义 SQL,则必须使用 copy_expert。假设您的查询有效,这样:

with open(file_path, "w") as outfile:
    cur.copy_expert("COPY (select * from 'schema'.structure) TO STDOUT DELIMITER ',' CSV HEADER", outfile)

您必须提供一个可写文件作为第二个参数,并在查询中使用 TO STDOUT