2012-08-24 3 views
12

次のコードではエラーは発生しません。しかし、私のデータベースにも値は入れていません。主キーの索引を除いて、すべての制約を表から外しました。 2つのフィールドは両方とも文字列です。何か案は?最も紛らわしいことは、エラーが記録されないことです。失敗したPostgres/Psycopg2でログに記録されたエラーはありません。copy_from

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() 
+1

)のすべてが同じメソッドと属性を持っていることを忘れることは簡単ですか? –

+0

これはいいキャッチだけど、ここの私の最初の草稿からは省略されただけだ。コミットは私のコードにあり、更新されていません。 –

答えて

17

私はこれも苦労しました。あなたのwrite

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

、またはあなたがcopy_toを行った後、あなたは、データベースへのデータベースから移動している場合:一部の隠された知識は、あなたがしなければならないということです。

それはStringIOオブジェクトは、あなたの(コミットされfile object.

+2

それはそうしました。ありがとうございました! –

+0

私はやったと思います。私はコメントを提出したときに私の接続を失った。 –