微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用psycopg2 copy_from()在Postgresql中复制NULL值

这似乎是一个相当受欢迎的问题,但这里的所有答案都没有帮助我解决问题…我的OS X机器上有一个 Postgresql 9.5表:

CREATE TABLE test (col1 TEXT,col2 INT)

以下函数使用psycopg2 copy_from()命令:

def test_copy(conn,curs,data):
    cpy = BytesIO()
    for row in data:
         cpy.write('\t'.join([str(x) for x in row]) + '\n')
    print cpy
    cpy.seek(0)
    curs.copy_from(cpy,'test')

test_copy(connection,[('a',None),('b',None)])

并将导致此错误

ERROR:  invalid input Syntax for integer: "None"
CONTEXT:  copY test,line 1,column col2: "None"
STATEMENT:  copY test FROM stdin WITH DELIMITER AS '    ' NULL AS '\N'

我也试过curs.copy_from(cpy,’test’,null =”),curs.copy_from(cpy,null =’NULL’).任何建议都非常感谢.

解决方法

好的,经过更多的试用和错误我找到了解决方案:

copy_from(cpy,'test',null='None')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐