【问题标题】:Quoted separator cursor copy_from in pythonpython中带引号的分隔符光标copy_from
【发布时间】:2013-08-14 16:28:34
【问题描述】:

有没有办法提供引号分隔符

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

【问题讨论】:

    标签: python sql psycopg2


    【解决方案1】:

    似乎 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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 2016-11-18
      • 1970-01-01
      相关资源
      最近更新 更多