python 查询MySQL问题_python查询mysql数据库的问题

使用excle作为配置文件存储数据库链接相关参数;

3d3b25ffe6cd9990f43e985ea5afd4dd.png

想要达到的目的是,每天执行脚本检查数据量,存入另一张excle

现在遇到的问题是,查第一个数据库没问题,到查第二个数据开始返回的执行结果还是第一个数据库的结果。。。我把结果答应出来看是这样的:

91a54f86e1b26a95d345f6860bac0a80.png

以下是代码:

#-*-coding:utf_8-*-

import xlrd #加载excle读取方法

import xlwt #加载excle写入方法

import mysql.connector as lj #加载mysql控件

import datetime #加载日期方法

def db_src():

data = xlrd.open_workbook('test.xlsx') #test中存数据库链接信息

table = data.sheets()[0] #获取excle的第一个sheets

nrows = table.nrows # 获取行数

tmp = {} #初始化空字典

temp = tmp.fromkeys([x for x in range(1,nrows)],[]) #序列化一个字典集{key:[value1,value2..]}

for i in range(1,nrows):

data_row = table.row_values(i) # 获取整行的值

host = data_row[1] #读取行中的每列记录

user = data_row[2]

password = data_row[3]

port = data_row[4]

database = data_row[5]

conn = lj.connect( #连接数据库

user=user,

password=password,

port=port,

host=host,

database=database)

cur = conn.cursor() #创建游标

today = datetime.date.today() #当前日期

yestday = today - datetime.timedelta(days=1)

sql_1 = "select count(1) from t_vehicle%s"%today.strftime('%Y%m%d') #查询当天

sql_2 = "select count(1) from t_vehicle%s"%yestday.strftime('%Y%m%d')#查询前天

sql_3 = "select code_,name_ from t_channel t1 where t1.ID_ not in (select HostChannelId_ from t_vehicle%s)"%yestday.strftime('%Y%m%d')

#查询昨天无数据车道信息

cur.execute(sql_1) #执行sql_1

a = (cur.fetchall()) #获取执行结果

temp[i].append(a[0][0]) #将查询结果放入字典中

cur.execute(sql_2) # 执行sql_2

a = cur.fetchall() # 获取执行结果

temp[i].append(a[0][0])

cur.execute(sql_3) # 执行sql_3

a = cur.fetchall() #type(a) = list

code = []

name = []

for t in range(len(a)):

code.append(a[t][0])

name.append(a[t][1]) #车道编号名称分别生成两个列表

temp[i].append(code) # 获取执行结果

temp[i].append(name) # 获取执

# 行结果

# print('已完成对%s的查询,当前正在关闭与该数据库的链接。。。请稍后。。。'%data_row[0])

conn.close()

cur.close()

# print('所有脚本检查完毕,准备写入excle')

f = xlwt.Workbook()

sheet = f.add_sheet('sheet1', cell_overwrite_ok=True) # 创建sheet

sheet.write(0, 0, '服务器名称') # 初始化标题

sheet.write(0, 1, '当前总量') # 初始化标题

sheet.write(0, 2, '昨天总量') # 初始化标题

sheet.write(0, 3, '无数据1') # 初始化标题

sheet.write(0, 4, '无数据2') # 初始化标题

sheet.write(0, 5, '查询结果5') # 初始化标题

# for k,v in temp.items():

# for j in range(len(v)):

# print(k,j+1,(v[j]))

for i_1 in range(1,nrows):

ex1=temp[i_1][0]

sheet.write(i_1,1,ex1 )

ex2=temp[1][1]

sheet.write(i_1,2,ex2)

ex3='\n'.join(temp[1][2])

sheet.write(i_1,3,ex3)

ex4='\n'.join(temp[1][3])

sheet.write(i_1,4,ex4)

f.save('巡检结果.xls')

db_src()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值