我有些难以理解Python中
问题在于该脚本会打印'复制成功',但不会将数据插入到数据库中。没有生成错误消息。我已经复制了文件路径中的\字符,所以那不是问题。我一直在寻找解决方案和可能的故障排除方法,但尚未找到任何我能理解且相关的东西。
此外,是否有任何方法可以将mock_idea_info直接传递到复制语句中?
非常感谢任何帮助。
psycopg3
库的适当语法。我正在尝试将.csv文件的内容复制到我的数据库中。PostgreSQL文档指出应该按照以下方式编写copy
:COPY table_name [ ( column_name [, ...] ) ]
FROM { 'filename' | PROGRAM 'command' | STDIN }
[ [ WITH ] ( option [, ...] ) ]
[ WHERE condition ]
所以我将我的Python语句写成了以下形式:
import psycopg
with psycopg.connect('dbname=ideatest user=postgres password=password') as conn:
with conn.cursor() as cur:
mock_idea_info = open(r'C:\dir\filename.csv')
cur.copy('public.ideastorage FROM C:\dir\filename.csv;')
print('Copy successful.')
问题在于该脚本会打印'复制成功',但不会将数据插入到数据库中。没有生成错误消息。我已经复制了文件路径中的\字符,所以那不是问题。我一直在寻找解决方案和可能的故障排除方法,但尚未找到任何我能理解且相关的东西。
此外,是否有任何方法可以将mock_idea_info直接传递到复制语句中?
非常感谢任何帮助。
with cursor.copy("COPY data FROM STDIN") as copy
让我感到困惑。看起来整个文件被转换为一个对象,然后存储并(以某种方式)分解为列式存储在数据库中。这正确吗? - Caritaspsycopg3
,所以答案可能需要修改,但我认为它可以作为一个起点。 - Adrian Klaver