今天主要是总结一下最近使用较多的MySQL数据库的读写操作,将公共部分抽象出来做成单独的模块,比如我提供了一个数据库写操作的函数,只要明确了数据输入的格式,可以从csv文件、json文件、txt文件、Excel文件进行原始数据文件的读取然后调用写操作函数完成数据的写入操作,能够简化重复的工作。
具体的Demo实现如下:
#!usr/bin/env python
#encoding:utf-8
from __future__ import division
'''
__Author__:沂水寒城
功能: python创建数据表写入数据
'''
import os
import sys
import json
import time
import random
import pymysql
import datetime
reload(sys)
sys.setdefaultencoding('utf-8')
#本地数据库
mysql={
'host':'localhost',
'user':'***',
'passwd':"***",
'db':'DB',
'charset':'utf8'}
def createTableMySQL(tablename='myTable'):
'''
创建表
'''
conn=pymysql.connect(**mysql)
cur=conn.cursor()
try:
drop_sql="drop table if exists %s" % tablename
cur.execute()
except Exception,e:
print 'Drop Exception: ',e
try:
create_sql="""CREATE TABLE %s (
A VARCHAR(100) NOT NULL,
B VARCHAR(100),
C VARCHAR(100),
D VARCHAR(100),
E VARCHAR(100),
F VARCHAR(100),
G VARCHAR(100)
)
""" %(tablename)
cur.execute(create_sql)
conn.commit()
cur.close()
conn.close()
except Exception,e:
print 'createTableMySQL Exception: ',e
def write2Table(data_list,tablename='mytable'):
'''
写入数据表
data_list:待写入的数据列表,列表中每个元素都是一条记录形成的列表
'''
try:
connect=pymysql.connect(**mysql)
cursor=connect.cursor()
TS=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") #获取当前时间戳
for O in data_list:
insert_sql="INSERT INTO %s (A,B,C,D,E,F,G) \
VALUES ('%s','%s','%s','%s','%s','%s','%s')" % \
(tablename,O[0],O[1],O[2],O[3],O[4],O[5],O[6])
cursor.execute(insert_sql)
connect.commit()
print 'myTable insertOperation Finished!!!'
cursor.close()
connect.close()
except Exception,e:
print "myTable operation Exception: ",e
if __name__=='__main__':
createTableMySQL(tablename='myTable')
#data_list 是自己要写的数据记录
write2Table(data_list,tablename='myTable')
如有相同需要的可以拿去修改部分字段就可以直接使用了,上述代码很简单,相关的注释都在代码中了,主要完成的工作就是创建指定的表格,将自己的数据写入该表中。
学习记录一下!