日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python psycopg2_python2.7 psycopg2

發布時間:2023/12/19 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。