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. 检查系统环境变量 ...
随机推荐
- Flink中API使用详细范例--window
Flink Window机制范例实录: 什么是Window?有哪些用途? 1.window又可以分为基于时间(Time-based)的window 2.基于数量(Count-based)的window ...
- JavaScript form提交汉字乱码
<script type="text/javascript"> var test1="http://www.w3school.com.cn/My first/ ...
- Linux基础重点习题讲解
第一章 一个EXT4的文件分区,当时使用touch test.file命令创建一个新文件时报错,报错的信息是提示磁盘已满,但是采用df-h命令查看磁盘大小时,只使用了60%的磁盘空间,为什么会出现这 ...
- .NET细节知识总结,不断更新
1.catch (Exception)和catch (Exception e) Exception 类包含许多子类 程序执行的时候要将每一个类都搜索一遍 以找到符合的异常类 这样是蛮消耗资源的 影响效 ...
- (四)Resquest 知识点总结 (来自那些年的笔记)
目录 URL和URI的区别 获取URL.URI 什么是HttpServletResquest 获取请求头中字段的内容 获取请求信息的数据 将客户机的请求变为一个流返回 常用的方法 request乱码问 ...
- S03_CH08_DMA_LWIP以太网传输
S03_CH08_DMA_LWIP以太网传输 8.1概述 本例程详细创建过程和本季课程第一课<S03_CH01_AXI_DMA_LOOP 环路测试>非常类似,因此如果读者不清楚如何创建工程 ...
- Java中编码问题
在开发过程中经常会遇到一会乱码问题,不是什么大问题,但是也挺烦人的,今天来将我们开发总结的经验记录下来,希望可以给大家一些帮助. 一些概念: 字符:人们使用的记号,抽象意义上的一个符号.比如:‘1’, ...
- .net core mvc + mysql dbfirst 生成 ado.net 数据模型
1.点击“工具”->“NuGet包管理器”->“程序包管理器控制台” 安装一下包 Install-Package MySql.Data.EntityFrameworkCore -Pre I ...
- GNU,GPL与自由软件
GNU 是 Richard Stallman(理查德·斯托曼)创建的一个项目,not unix GPL(General Public License),GNU通用公共许可证.书面上的协议 自由软件与开 ...
- ArrayList和CopyOnWriteArrayList(转载)
这篇文章的目的如下: 了解一下ArrayList和CopyOnWriteArrayList的增删改查实现原理 看看为什么说ArrayList查询快而增删慢? CopyOnWriteArrayList为 ...