处理json文件,并将数据汇总至Excel表格

从scores.jason文件中读取学生信息,输出学生的学号,姓名,各科成绩,平均分, 各科标准差

效果:

# # 从scores.jason文件中读取学生信息,输出学生的学号,姓名,各科成绩,平均分, 各科标准差
import statistics as stats
import openpyxl
import json
wb = openpyxl.Workbook()
sheet = wb.active
with open('../scores.json', mode='r', encoding='utf-8') as file_obj:
    result_dict = json.load(file_obj)
    scores_list = result_dict['成绩']
    # 处理数据
    # 语文分数
    verbol_scores = list()
    math_scores = list()
    eng_scores = list()
    for studend in scores_list: # type: dict
        sum_scores = 0
        for k, v in studend.items():
            if k == '语文':
                verbol_scores.append(v)
                sum_scores += v
            if k == '数学':
                math_scores.append(v)
                sum_scores += v
            if k == '英语':
                eng_scores.append(v)
                sum_scores += v
        studend['平均分'] = round(sum_scores/3, 2)
    # 按照平均分大小排序,升序
    scores_list.sort(key=lambda x: x['平均分'], reverse=False)

    # 计算标准差
    verbol_std, math_std, eng_std = stats.pstdev(verbol_scores), stats.pstdev(math_scores), stats.pstdev(eng_scores)

    # 写数据
    sheet.append([i for i in scores_list[0]])
    for student in scores_list: # type: dict
        # 将dict_values对象转化为list
        sheet.append(list(student.values()))
    print(scores_list)
    # 写标准差
    row = sheet.max_row + 1
    for col, value in zip(('CDE'), (verbol_std, math_std, eng_std)):
        sheet[f'{col}{row}'] = value


wb.save('C://Users/小碧宰治/Desktop/test.xlsx')

最近更新

  1. TCP协议是安全的吗?

    2024-04-13 06:46:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-13 06:46:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-13 06:46:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-13 06:46:05       18 阅读

热门阅读

  1. 如何快速打开Github

    2024-04-13 06:46:05       15 阅读
  2. 【Android】【root & remount】adb su如何添加密码校验

    2024-04-13 06:46:05       19 阅读
  3. python连接mysql数据库通用类

    2024-04-13 06:46:05       16 阅读
  4. 小程序上拉触底节流处理

    2024-04-13 06:46:05       14 阅读
  5. 常用的限流算法原理与实现

    2024-04-13 06:46:05       51 阅读
  6. 【蓝桥杯】十六进制转八进制 C++实现

    2024-04-13 06:46:05       17 阅读
  7. 数据结构 -- 二叉树

    2024-04-13 06:46:05       13 阅读
  8. oracle表误删恢复

    2024-04-13 06:46:05       38 阅读