Mega Code Archive

 
Categories / Python Tutorial / Database
 

Optimized execute() for multiple rows example

import psycopg rows = ({'num': 0, 'text': 'Zero'},         {'num': 1, 'text': 'Item One'},         {'num': 2, 'text': 'Item Two'},         {'num': 3, 'text': 'Three'}) def getdsn(db = None, user = None, passwd = None, host = None):     if user == None:         import os, pwd         user = pwd.getpwuid(os.getuid())[0]     if db == None:         db = user     dsn = 'dbname=%s user=%s' % (db, user)     if passwd != None:         dsn += ' password=' + passwd     if host != None:         dsn += ' host=' + host     return dsn dsn = getdsn() print "Connecting to %s" % dsn dbh = psycopg.connect(dsn) print "Connection successful." cur = dbh.cursor() cur.execute("DELETE FROM myTable") query = "INSERT INTO myTable VALUES (%(num)d, %(text)s)" for row in rows:     cur.execute(query, row) dbh.commit() dbh.close()