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 pandas as pd db = pymysql.connect(host='localhost',user='root',db='huangwei',
password='',port=,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='',
port=, db='huangwei', charset='utf8') cursor = db.cursor() # 插入一条数据
sql = 'insert into person(name,age) values(%s,%s)'
try:
cursor.execute(sql,('孙悟空',))
db.commit()
print("插入成功")
except:
print("插入失败")
db.rollback()
db.close() 插入多条
sql = 'insert into person(name,age) values(%s,%s)'
# 注意:(('牛魔王',),('铁扇公主',),('玉皇大帝',))也可以
# 小括号都可以换为中括号
datas = [('牛魔王',),('铁扇公主',),('玉皇大帝',)]
try:
cursor.executemany(sql,datas)
db.commit()
print("插入成功")
except:
print("插入失败")
db.rollback()

python2.7 psycopg2的更多相关文章

  1. Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-3-Django项目实例

    使用 Django 我们现在将使用 Compose 配置并运行一个 Django/PostgreSQL 应用.在此之前,先确保 Compose 已经安装. 1.通过编辑 Dockerfile文件来指定 ...

  2. python2 使用pip安装psycopg2出现错误:Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-mvzdNj/psycopg2/

    公司业务需求,开发语言python2,需要使用数据库:postgresql,需要安装模块psycopg2这个模块, 使用pip install psycopg2 报错: Command "p ...

  3. python2/3 利用psycopg2 连接postgreSQL数据库。

    psycopg2 是一个通过python连接postgreSQL的库, 不要被它的名称蒙蔽了,你可能发现它的版本是psyconpg2.7.*, 以为它只能在python2上使用,实际上,这只是一个巧合 ...

  4. psycopg2关于undefined symbol: lo_truncate64解决方法

    今天,在centos6.5下安装psycopg2,利用Python连接PostgreSQL数据库的时候,出现了一个undefined symbol: lo_truncate6的错误: django.c ...

  5. python3自动安装脚本,python3.x与python2.x共存

    1.前言: python3过程中,通过搜索一些文章参考安装过程发现比较麻烦,而且还出现一些不可预期的报错.python3环境需要升级openssl,所以为了部署到其他环境更方便,写自动安装脚本方式,且 ...

  6. 让VIM支持Python2 by update-alternatives

    前言  Ubuntu 16+中$ sudo apt install vim所安装的vim只支持Python3,但很多插件如YCM和powerline均需要Python2,那就来场"生命贵在折 ...

  7. 烂泥:python2.7和python3.5源码安装

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前几天在centos6.6安装ansible时,一直提示python版本不对,导致不能安 ...

  8. python版本随意切换之python2.7+django1.8.7+uwsgi+nginx源码包部署。

    资源准备: wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz wget https://www.djangoproject ...

  9. windows XP上实现python2.7.5和python3.4.3共存

    windows XP上实现python2.7.5和python3.4.3共存过程记录: 1. 首先安装python2.7.5和python3.4.3,两个版本安装顺序不分前后; 2. 检查系统环境变量 ...

随机推荐

  1. Docker准备

    1. 引言 Docker是目前最流行的容器技术,是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.是开发人员和系统管理员使用容器开发,部署和运行应用程序的平台.也许我们 ...

  2. js文本公告滚动展示,图片轮播....

    1.引入文件 <link rel="stylesheet" href="/css/liMarquee.css"> <script src=&q ...

  3. 图数据库neo4j添加算法包

    1. 从https://github.com/neo4j-contrib/neo4j-graph-algorithms/releases下载相应版本jar包,放到 C:\Users\Administr ...

  4. IOS IAP APP内支付 Java服务端代码

    IOS IAP APP内支付 Java服务端代码   场景:作为后台需要为app提供服务,在ios中,app内进行支付购买时需要进行二次验证. 基础:可以参考上一篇转载的博文In-App Purcha ...

  5. 【坑】使用IDEA创建maven的时候,提示缺少plugin-clean 等

    解决方法 检查你的网络,能否访问 maven 中央仓库 : 在 IDEA 中是否对 maven 进行了配置 IDEA 默认使用的 仓库 和 配置文件,都是 .m2 下面的: 如果你自己对 maven ...

  6. Spring Boot系列教程十三:Spring boot集成Sentinel Redis

    前言 上一篇文章介绍了spring boot集成单点的redis,然而实际生产环境使用单点的redis风险很高,一旦宕机整个服务将无法使用,这篇文章介绍如何使用基于sentinel的redis高可用方 ...

  7. Oracle数据库——ROWNUM

    Oracle数据库--ROWNUM 前言   刚学到了ROWNUM的用法,网上一搜,结果发现了有很多帖子,写的都很全.本着好记性不如烂笔头的原则,我还是决定自己手打一遍,当然下面也附上了我参考的链接. ...

  8. PHP传引用赋值底层的变化

    $a = 3;$b = &$a;//传引用,即地址赋值 使用xdebug_debug_zval('a');使用xdebug_debug_zval('b');运行结果为:a:(refcount= ...

  9. (二十七)JSP标签之核心标签

    一.诞生 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码. 二.JSTL 分类 核心标签(用得最多) ...

  10. pycharm2019.2永久激活

    Pycharm2019.2永久激活Pycharm官网在不到两个月内与2019.7.24更新到最新版本pycharm2019.2,不可说更新不快,对于"喜新厌旧"的我怎能错过新版本呢 ...