python练习题--计算总分平均分操作excel
''' 有一个存着学生成绩的文件,里面存的是json串,json串读起来特别不直观,需要你写代码把它都写到excel中,并计算出总分和平均分,json格式如下 { "1":["小花",99,100,98.5], "2":["小王",90,30.5,95], "3":["小明",67.5,49.6,88] } 分析: 1、json需要读出来编程字典json.load 2、写进excel里面那么就可以把字典中的values读取出来是一个 list然后把key再插入到values中 insert(0,k) 3、要计算总分和平均分那么就把后面的成绩切片出来然后sum、sum/len() 4、最后把所有的值写到excel中 ''' import json from xlwt import Workbook f = open('score.json',encoding='utf-8') score_list = json.load(f) #把json转成字典 # print(score_list) book = Workbook() sheet = book.add_sheet('sheet1') #处理表头 title_list = ['学号','姓名','语文成绩','数学成绩','英语成绩','总分','平均分'] i = 0 for j in title_list: sheet.write(0,i,j) i+=1 line = 1 #控制行 for k in score_list: res_list = score_list[k] rea_list = res_list.insert(0,k) #把k插入到里面的list里为以后计算总分和平均分以及写excel准备 # print(res_list) q_list = res_list[2:] sum_list = sum(q_list) #取总分 avg_list = round(sum_list/len(q_list),2) #取平均分留两位小数 # print(sum_list,avg_list) res_list.append(sum_list) res_list.append(avg_list) li=0 for h in res_list: sheet.write(line,li,h) li += 1 line+=1 book.save('score.xls')
不深思则不能造于道。不深思而得者,其得易失。