Python Psycopgエラーと接続の取扱い(v MySQLdb)
質問
があるので、いくpsycopg、postgresの取引との誤差がなく再接続のように、MySQLdb?のと版下作MySQLdbのコメントしてPsycopg2:
results = {'felicitas': 3, 'volumes': 8, 'acillevs': 1, 'mosaics': 13, 'perat\xe9': 1, 'representative': 6....}
for item in sorted(results):
try:
cur.execute("""insert into resultstab values ('%s', %d)""" % (item, results[item]))
print item, results[item]
# conn.commit()
except:
# conn=psycopg2.connect(user='bvm', database='wdb', password='redacted')
# cur=conn.cursor()
print 'choked on', item
continue
これが遅いものは、ただの提案を通過するフォーマットの誤差?明らかに上記のchokesにアポストロフィがあるので乗り越えることなく、次のように、または犯,再投入などが有ります。:
agreement 19
agreements 1
agrees 1
agrippa 9
choked on agrippa's
choked on agrippina
解決
まずすべきpsycopgの脱出のためのすぐに実行す()メソッドのパラメータの代わりにこのフォーマットで'%'.るには:
cur.execute("insert into resultstab values (%s, %s)", (item, results[item]))
注の利用について"%s"マーカーとしても文字列以外の値を回避する引用符を返します。psycopgいすべての引用です。
そして、したい場合は無視するボディーにより若干の誤差が生じ、rollbackてください。
try:
cur.execute("SELECT this is an error")
except:
conn.rollback()
ることはありません。psycopgますロールバックの新しい取引のご来ます。
他のヒント
行きたいというようなコードになりますの瞬間:
l = "a very long ... text".split()
for e in l:
cursor.execute("INSERT INTO yourtable (yourcol) VALUES ('" + e + "')")
うに変更してみてくださいというようになります:
l = "a very long ... text".split()
for e in l:
cursor.execute("INSERT INTO yourtable (yourcol) VALUES (%s)", (e,))
でも忘れられないその場合には、パラメータのパラメータのリストでしかいお見積ものでもあります。につなげていくかを学びますので http://www.python.org/dev/peps/pep-0249/
している、方法。executemany()である特別設計の実行が同じ決ます。
所属していません StackOverflow