作为主题,这是代码,没有错误消息,但数据没有得到插入。
这是我的密码,有人能告诉我怎么了吗?

import psycopg2
import sys
import os
import glob
import csv

#open the csv folder
dictfile='******'
os.chdir(dictfile)
total=[]
for file in glob.glob("*.csv"):
    total.append(file)
con = None
try:
    con = psycopg2.connect(host='localhost',database='*****',user='postgres', password='*****')
    cur = con.cursor()
    for i in range(0,1):
        filename='/Users/Shared'+'/'+total[0]
        print filename
        #better move all files into shared folder
        x="copy public.crossref_sample from "+ "'"+filename+"'"+" DELIMITERS ',' CSV"
        print x
        cur.execute(x)
except psycopg2.DatabaseError, e:
    print 'Error %s' % e
    sys.exit(1)
finally:
    if con:
        con.close()

最佳答案

正如@a_horse_with_no_name所暗示的那样,您正在关闭PostgreSQL数据库连接,但不是先提交事务。
如果还没有打开的事务,psycopg2将为您打开一个事务。它希望您在完成工作后提交此事务。
除非显式提交事务,否则关闭连接将回滚已完成的所有工作。
在最后一个复制命令之后尝试con.commit()

关于python - 无法使用Postgres和Python“复制”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13868492/

10-15 08:43