""" 导出课程对应试卷数量 """ import requests import openpyxl import config import pandas as pd wb = openpyxl.Workbook() sheet1 = wb.create_sheet(title="试卷数量") sheet1.append(["科目代码","科目名称","试卷数量"]) sheet2 = wb.create_sheet(title="小题数量") sheet2.append(["科目代码","科目名称","小题数量"]) def getQuestionCount(paperId): url=config.domain+"/api/ecs_ques/paper/%s"%(paperId) result = requests.get(url, headers={"key": config.key, "token": config.token}) return result.json() def getQuestionData(pageNo): url=config.domain+"/api/ecs_ques/importPaper/%d/500"%(pageNo) params={ "courseNo":"", "level":"", "name":"" } result=requests.get(url,params=params,headers={"key": config.key, "token": config.token}) return result.json() def getPaperData(pageNo): url=config.domain+"/api/ecs_ques/genPaper/%d/10?courseNo=&courseName=&level=&name="%(pageNo) result = requests.get(url, headers={"key": config.key, "token": config.token}) return result.json() if __name__=="__main__": questionList=[] f=None if config.type=="题库": f=getQuestionData elif config.type=="卷库": f=getPaperData pageResult=f(1) if not f: raise Exception("类型数据有误,仅支持题库或卷库") totalPages=pageResult["totalPages"] for pageNo in range(1,totalPages+1): print("start to solve page %d "%(pageNo)) pageResult=f(pageNo) for question in pageResult["content"]: print("start to solve paper %s " % (question["id"])) questiondetail=getQuestionCount(question["id"]) paperdetail=questiondetail["paperDetails"] questioncount=0 for mainnumberdetail in paperdetail: questioncount=questioncount+mainnumberdetail["unitCount"] question["questioncount"]=questioncount questionList.append(question) resultframe = pd.DataFrame(questionList) def functionsolve(x): x["courseCode"]=x["course"]["code"] return x resultframe=resultframe.apply(func=functionsolve,axis=1) for courseCode, result in resultframe.groupby(by=["courseCode"]): sheet1.append([courseCode,result["course"].values[0]["name"],result.shape[0]]) sheet2.append([courseCode,result["course"].values[0]["name"],sum(result["questioncount"])]) wb.save("result.xlsx")