编写python代码,查询出所有的电影数据,并输出到一个Excel表movieRank.xlsx中,如下图所示
MoviesName | boxOffice | percent | days | totalBoxOffice |
21克拉 | 1031.92 | 15.18 | 2 | 2827.06 |
头号玩家 | 1054.87 | 15.52 | 23 | 127306 |
湮灭 | 135.34 | 1.99 | 9 | 5556.77 |
犬之岛 | 617.35 | 9.08 | 2 | 1309.09 |
狂暴巨兽 | 2928.28 | 43.07 | 9 | 57089.2 |
红海行动 | 45.49 | 0.67 | 65 | 364108 |
起跑线 | 161.03 | 2.37 | 18 | 19873 |
import xlwt
import pymysql
conn = pymysql.connect(host = 'localhost',user = 'root',passwd = '123456',db = 'movies',charset = 'utf8')
cur = conn.cursor()
# 创建Excel的表格
wbk = xlwt.Workbook()
sheet = wbk.add_sheet('movies')
# 获取movieRank里的信息,然后写入Excel中
def getinfo():
cur.execute('select * from movieRank')
datas = cur.fetchall()
biaotou = cur.description
biaotou_list = []
for k in biaotou:
biaotou_list.append(k[0])
# print(k)
for i in range(len(biaotou_list)):
sheet.write(0,i,biaotou_list[i])
for i in range(len(datas)):
row = datas[i]
for j in range(len(row)):
# 表头描述已经占据一行了
sheet.write(i+1,j,datas[i][j])
wbk.save('./movieRank.xls')
getinfo()
其中注意的一个函数是cur.description,返回的数据是一个集合,如下所示
('MoviesName', 253, None, 225, 225, 0, False)
('boxOffice', 4, None, 12, 12, 31, False)
('percent', 4, None, 12, 12, 31, False)
('days', 3, None, 11, 11, 0, False)
('totalBoxOffice', 4, None, 12, 12, 31, False)
除此以外,还需要注意的fetchall()函数并没有包括表头的信息,我们需要自建表头,简而言之就是fetchall()函数只是提取了非表头的所有数据,这点是这次代码的一个收获。包括fetchall()的返回对象同样是一个集合,我们可以利用索引来顺利的遍历每一个数据。