17

以下代码不会引发错误。但它也没有在我的数据库中放入任何值。除主键上的索引外,已取消表中的所有约束。这两个字段都是字符串。有任何想法吗?最令人困惑的是没有记录错误。

conn = psycopg2.connect("dbname=<mydbname> user=postgres password=<mypassword>")
cur = conn.cursor()
output = StringIO.StringIO()
output.write('Citizen Caine\tMy_API_id\n')
cur.copy_from(output, 'movie', columns=('title','api_id'))
conn.commit()
4

1 回答 1

26

我也为此苦苦挣扎。一些隐藏的知识是您必须执行以下操作:

output.seek(0) #put the position of the buffer at the beginning

在你之后write,或者如果你从一个数据库移动到另一个数据库,在你做一个copy_to.

很容易忘记StringIO对象具有文件对象的所有相同方法和属性。

于 2012-08-24T04:45:42.637 回答