python psycopg2_python2.7 psycopg2
psycopg2 安裝
sql='''INSERT INTO "CNYB"."PRE_DQ_PLANT"("ID", "ORG_ID", "RT_ORG_ID", "DATE", "DTIME", "CTIME", "INDEX", "MARK", "FNAME", "P_PR", "P_PTR")
VALUES (%(ID)s, %(ORG_ID)s, %(RT_ORG_ID)s, %(DATE)s, %(DTIME)s, %(CTIME)s, %(INDEX)s, %(MARK)s, %(FNAME)s, %(P_PR)s,%(P_PTR)s);'''
util.inserDataToDB(dbcnyb,sql,ret)
sql='''INSERT INTO "CNYB"."PRE_DQ_PLANT"("ID", "ORG_ID", "RT_ORG_ID", "DATE", "DTIME", "CTIME", "INDEX", "MARK", "FNAME", "P_PR", "P_PTR")
VALUES ('%(ID)s', '%(ORG_ID)s', '%(RT_ORG_ID)s', '%(DATE)s', '%(DTIME)s', '%(CTIME)s', '%(INDEX)s', '%(MARK)s', '%(FNAME)s', '%(P_PR)s','%(P_PTR)s');'''
retlist=[]
for rd in ret:
new_sql=sql%rd
retlist.append(new_sql)
newsql=';'.join(retlist)
util.inserDataToDB2(dbcnyb,newsql)
def inserDataToDB(cnyb,sql,rows):
try:
stime=datetime.datetime.now()
with cnyb.cursor() as cur:
cur.executemany(sql, rows)
cnyb.commit()
LOG.debug("insert over")
etime=datetime.datetime.now()
gap=(stime-etime).seconds
LOG.debug('gap=%s'%gap)
except Exception,e:
cnyb.rollback()
LOG.error("insert data fail,ex=%s"%(traceback.format_exc()))
def inserDataToDB2(cnyb,sql):
try:
stime=datetime.datetime.now()
with cnyb.cursor() as cur:
cur.execute(sql)
cnyb.commit()
LOG.debug("insert over")
etime=datetime.datetime.now()
gap=(stime-etime).seconds
LOG.debug('gap2=%s'%gap)
except Exception,e:
cnyb.rollback()
LOG.error("insert data fail,ex=%s"%(traceback.format_exc()))
==================
util.inserDataToDB(dbcnyb,'"CNYB"."PRE_DQ_PLANT"',uncoverData,['ID', 'ORG_ID', 'RT_ORG_ID', 'DATE', 'DTIME', 'CTIME', 'INDEX', 'MARK', 'FNAME', 'P_PR','P_PTR'])
def inserDataToDB(cnyb,tbl,df,cols):
try:
output = BytesIO()
df.to_csv(output, sep='\t', index=False, header=False,columns=cols)
stime=time.clock()
with cnyb.cursor() as cur:
cur.copy_from(output, tbl)
cnyb.commit()
etime=time.clock()
LOG.debug("insert over,insert sends=%s"%(etime-stime))
except Exception,e:
cnyb.rollback()
LOG.error("insert data fail,ex=%s"%(traceback.format_exc()))
=============pymysql
參考:https://mp.weixin.qq.com/s/hhykKBsFMRen5D-aawO6pA
import?pymysql
db=pymysql.connect(host='localhost',user='root',password='123456',
port=3306,db='spiders',charset='?utf8')
使用pandas中的read_sql()方法,將提取到的數據直接轉化為DataFrame,進行操作
mport pymysql
import pandasaspd
db= pymysql.connect(host='localhost',user='root',db='huangwei',
password='123456',port=3306,charset='utf8')
cursor=db.cursor()
df1= pd.read_sql("select * from student where ssex='男'",db)
display(df1)
進行 "增"、"刪"、"改"的時候,一定要使用try…except…語句,因為萬一沒插入成功,其余代碼都無法執行。當語句執行不成功,我們就db.rollback()回滾到操作之前的狀態;當語句執行成功,我們就db.commit()提交事務
import pymysql
db=pymysql.connect(host='localhost',user='root', password='123456',
port=3306, db='huangwei', charset='utf8')
cursor=db.cursor()
# 插入一條數據
sql= 'insert into person(name,age) values(%s,%s)'
try:
cursor.execute(sql,('孫悟空',100000))
db.commit()
print("插入成功")
except:
print("插入失敗")
db.rollback()
db.close()
插入多條
sql= 'insert into person(name,age) values(%s,%s)'# 注意:(('牛魔王',9000),('鐵扇公主',8000),('玉皇大帝',6000))也可以
# 小括號都可以換為中括號
datas= [('牛魔王',9000),('鐵扇公主',8000),('玉皇大帝',6000)]try:
cursor.executemany(sql,datas)
db.commit()
print("插入成功")
except:
print("插入失敗")
db.rollback()
總結
以上是生活随笔為你收集整理的python psycopg2_python2.7 psycopg2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据导论章节答案_托福100+需要准备
- 下一篇: websocket python爬虫_p