質問

があるので、いく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()である特別設計の実行が同じ決ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top