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 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的更多相关文章
- Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-3-Django项目实例
使用 Django 我们现在将使用 Compose 配置并运行一个 Django/PostgreSQL 应用.在此之前,先确保 Compose 已经安装. 1.通过编辑 Dockerfile文件来指定 ...
- 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 ...
- python2/3 利用psycopg2 连接postgreSQL数据库。
psycopg2 是一个通过python连接postgreSQL的库, 不要被它的名称蒙蔽了,你可能发现它的版本是psyconpg2.7.*, 以为它只能在python2上使用,实际上,这只是一个巧合 ...
- psycopg2关于undefined symbol: lo_truncate64解决方法
今天,在centos6.5下安装psycopg2,利用Python连接PostgreSQL数据库的时候,出现了一个undefined symbol: lo_truncate6的错误: django.c ...
- python3自动安装脚本,python3.x与python2.x共存
1.前言: python3过程中,通过搜索一些文章参考安装过程发现比较麻烦,而且还出现一些不可预期的报错.python3环境需要升级openssl,所以为了部署到其他环境更方便,写自动安装脚本方式,且 ...
- 让VIM支持Python2 by update-alternatives
前言 Ubuntu 16+中$ sudo apt install vim所安装的vim只支持Python3,但很多插件如YCM和powerline均需要Python2,那就来场"生命贵在折 ...
- 烂泥:python2.7和python3.5源码安装
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前几天在centos6.6安装ansible时,一直提示python版本不对,导致不能安 ...
- 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 ...
- windows XP上实现python2.7.5和python3.4.3共存
windows XP上实现python2.7.5和python3.4.3共存过程记录: 1. 首先安装python2.7.5和python3.4.3,两个版本安装顺序不分前后; 2. 检查系统环境变量 ...
随机推荐
- Linux由于物理节点故障导致的异常重启-Case1
问题描述:Linux VM异常重启,需要排查问题原因 排查结果: 查询Messages日志获取到的信息 虚拟机内核版本: Jun :: test01 kernel: Linux version -.e ...
- vs2019将小游戏打包成msi踩的坑(个人)
1.VS无Setup projecrt? vs2015之前是自带打包msi功能的,vs2017之后需要自己去下载插件: 下载地址:https://marketplace.visualstudio.co ...
- python 自学day1(关于if和file的应用练习)
1.编写简单的登陆接口 #判断用户信息 #用户输入错误后锁定账号 流程图: 代码: #!/usr/bin/env python #-*- coding:utf-8 -*- document1 = op ...
- python将url转变成二维码图片
将url数据转变成二维码数据,再将二维码图片转成base64格式返回 import qrcode import io def url_image(self,url): img = qrcode.mak ...
- Nginx关联php安装及启动
Nginx 1.10.2 php 5.6.30 [root@nginx local]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (C ...
- 剑指offer(9)——用两个栈实现队列
题目: 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能. 思路: 首先定义两个栈stack1. ...
- js:把字符串转为变量使用; js下将字符串当函数去执行的方法
1 把字符串当变量使用 通过计算 string 得到的值(如果有的话).该方法只接受原始字符串作为参数 demo: var type = "car"; var newStr = & ...
- mysql存储emoji表情报错的处理方法【更改编码为utf8mb4】
utf-8编码可能2个字节.3个字节.4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符.如果直接往采用utf-8编码的数据库中插入表情数据,Java程 ...
- vue购物车动画效果
使用动画的三个函数 v-on:before-enter="beforeEnter" v-on:enter="enter" v-on:after-enter=&q ...
- CSS伸缩布局
1. 伸缩布局应用: 伸缩布局应用 主轴: Flex容器的主轴用来配置Flex项目,默认是水平方向 侧轴: 与主轴垂直的轴称为侧轴,默认还是垂直方向 方向: 默认是主轴从左向右, 侧轴默认是从上到下 ...
