有没有办法提供带引号的分隔符,例如
import psycopg2
f_cm = open('cm.sql', 'r')
constr = "dbname='mydb' user= 'pgsql' host='127.0.0.1'"
db = psycopg2.connect(constr)
st = db.cursor()
#st.copy_from(f_cm, 'mytable', sep='","', columns = ('col1','col2', 'col3'))
#instead of
st.copy_from(f_cm, 'mytable', sep=',', columns = ('col1','col2', 'col3'))
日期格式为:
"54654","4454","45465"
"54546","4545","885dds45"
"54536","4546","885dd45"
我在 psycopg 上搜索并找到了好消息
New in psycopg2.0.9
转到标题 psycopg 2.0.9 中的新功能¶,其中指出:
copy_from() 和 copy_to() 现在可以使用带引号的分隔符。
工具:
psycopg2 = 2.4.5
python = 2.7.3
最佳答案
似乎 cursor.copy_from 或 copy_to 不支持引用表。解决方案是使用 copy_expert。
import psycopg2
f_cm = open('cm.sql', 'r')
constr = "dbname='mydb' user= 'pgsql' host='127.0.0.1'"
db = psycopg2.connect(constr)
st = db.cursor()
copy = "COPY mytable(col1,col2, col3) FROM STDIN with csv"
st.copy_expert(sql=copy, file=f_cm)
db.commit()
st.close()
db.close()
关于python - 在python中引用分隔符游标copy_from,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18202609/