目标:将下面的文件导入到数据库中
以下是示例,最后会有我直接运行的代码
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高端实战实用学习流程体系,让你少走弯路。