Chinaunix

标题: Python连接PostgreSQL数据库 [打印本页]

作者: genedna    时间: 2005-05-31 11:43
标题: Python连接PostgreSQL数据库
我来贴一个Python和PostgreSQL数据库的例子,庆祝开版。
  1. from mx.DateTime import *
  2. import pg
  3. import random

  4. def insertdb(id, initNum):
  5.   nrange = range(initNum - 15, initNum +20)
  6.   marchbegin = Date(2005, 3, 1)
  7.   marchend = Date(2005, 4, 1)
  8.   i = 10
  9.   insertstrlist = []
  10.   while True:
  11.     intever = marchbegin + RelativeDateTime(day=1,hour=0,minute=i,second=0)
  12.     n = random.choice(nrange)
  13.     sql = "INSERT INTO srdata (\"srid\", \"srdtime\", \"srdcount\", \"srdstat\") VALUES ('" + str(id) + "', '" + str(intever) + "', '" + str(n) + "', '" + str(initNum) +"')"
  14.     insertstrlist.append(sql)
  15.     if marchend == intever :
  16.       break
  17.     i = i + 10
  18.   return insertstrlist
  19.   
  20. region50list = {'1':1120, '2':1222, '3': 1103, '4': 902}
  21. region64list = {'5':1000, '6':1200, '7': 973, '8': 823}
  22. region73list = {'9':1020, '10':1287, '11': 1122, '12': 1244}

  23. db = pg.connect(dbname = 'stat', host = '192.168.0.2', user = 'bbs', passwd = '2037423')
  24. for region in db.query("SELECT * FROM sregions").dictresult():
  25.   if (region["srid"] < 5):
  26.     num = region50list[str(region["srid"])]
  27.     sql50 = insertdb(region["srid"], num)
  28.     for i in sql50:
  29.       db.query(i)
  30.       print "Insert OK : " + i
  31.    
  32.   if (region["srid"] >; 5 and region["srid"] < 9):
  33.     num = region64list[str(region["srid"])]
  34.     sql64 = insertdb(region["srid"], num)
  35.     for i in sql64:
  36.       db.query(i)
  37.       print "Insert OK : " + i
  38.    
  39.   if (region["srid"] >; 8 and region["srid"] < 13):
  40.     num = region73list[str(region["srid"])]
  41.     sql70 = insertdb(region["srid"], num)
  42.     for i in sql70:
  43.       db.query(i)
  44.       print "Insert OK : " + i
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2