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')

 

posted @ 2017-11-20 15:43  D.零下的小书屋  阅读(6184)  评论(0编辑  收藏  举报