python mysql连接池 知乎_python连接Mysql数据库

目标:将下面的文件导入到数据库中

以下是示例,最后会有我直接运行的代码

import pymysql # 连接需要的包

db = pymysql.connect("localhost","root","123456","test" ) #连接数据库

cursor = db.cursor() #建立指针

# 创建你想要创建的表,SQL语句

# 一般MySQL的字符串定义为varchar类型

sql = """CREATE TABLE Log (

device_id VARCHAR(50) NOT NULL,

os VARCHAR(10) NOT NULL,

os_version VARCHAR(10) NOT NULL,

start_time VARCHAR(30) NOT NULL,

end_time VARCHAR(30) NOT NULL,

duration int )"""

cursor.execute(sql)#执行sql语句

#通过行来读取

with open("file","r")as f:

while 1:

line = f.readline()

if not line:

break

line = line.strip("\n")

#写入数据

#同样通过编写sql语句执行

#sql语句实例

# sql中对于字符串values要写成'%S',不然sql语句不符合语法

sql = "insert into log(device_id,os,os_version,start_time,end_time,duration)values('%s', '%s','%s', '%s','%s',%d)"%(tags[0],tags[1],tags[2],tags[3],tags[4],int(tags[5]))

#关闭数据库

db.close()

注意使用异常数据流处理,否则一旦数据出错就会全部停下来

#获取异常

import traceback

try:

...

except Exception, e:

print(str(e))

...

下面贴上我将开头的文件导入mysql数据库的代码

import pymysql

import traceback

db = pymysql.connect("localhost","root","77778888","scrapy" )

cursor = db.cursor()

with open("D:/Myfiles/大数据暑期项目/0720/game.log","r") as f:

# 创建表

# sql = """CREATE TABLE Log (

# device_id VARCHAR(50) NOT NULL,

# os VARCHAR(10) NOT NULL,

# os_version VARCHAR(10) NOT NULL,

# start_time VARCHAR(30) NOT NULL,

# end_time VARCHAR(30) NOT NULL,

# duration int )"""

# cursor.execute(sql)

while 1:

line = f.readline()

if not line:

break

line=line.strip('\n')

tags = line.split("\t")

try:

num = int(tags[5])

# 插入数据

sql = "insert into log(device_id,os,os_version,start_time,end_time,duration)values('%s', '%s','%s', '%s','%s',%d)"%(tags[0],tags[1],tags[2],tags[3],tags[4],int(tags[5]))

cursor.execute(sql)

# 执行sql语句

db.commit()

except Exception as e:

# 发生错误时回滚

db.rollback()

print(str(e))

db.close()

运行结果

数据量有点大,运行时间有点长。

很多初学者,对python的概念都是模糊不清的,python是什么,能做什么,学python有什么优势,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入我创建的千人python学习裙 ,裙聊号码:315346913,内有有大量实战学习资料(零基础以及进阶的经典实战)分享给大家,并且有资深讲师给大家免费授课,给大家分享目前国内最完整的python高端实战实用学习流程体系,让你少走弯路。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值