1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- """
- 导出课程对应试卷数量
- """
- 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")
|