database_tools_2中增加generateDictsfromMariaDB功能, 用数据库的cursor生成各种字典
This commit is contained in:
parent
6e097b8525
commit
c438ff7002
|
|
@ -1569,6 +1569,140 @@ def GenerateUsageTexCode(usage_list_raw,misc): #根据topandbottomusagestuple的
|
|||
usagecode = re.sub("\\t([\d]\.[\d]{0,10})",GenerateValueColorCode,"\n\n".join(usages_str))
|
||||
return usagecode #返回缩减后的使用记录列表
|
||||
|
||||
|
||||
def generateDictsfromMariaDB(mycursor):
|
||||
pro_dict = {}
|
||||
obj_dict = {}
|
||||
bn_dict = {}
|
||||
unit_obj_dict = {}
|
||||
sql = "SELECT * FROM problems;" #生成problems的原始架构
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
# print(len(ret_list))
|
||||
for ret in tqdm.tqdm(ret_list,desc="生成题目字典"):
|
||||
pro_dict[ret[0]] = {"id": ret[0], "content": ret[1], "ans": ret[2], "solution": ret[3], "genre": ret[4], "duration": ret[5], "origin": json.loads(ret[6]), "space": ret[7]}
|
||||
|
||||
sql = "SELECT * FROM objcorresp;" #生成objs
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
for id in pro_dict:
|
||||
pro_dict[id]["objs"] = []
|
||||
# print("生成目标对应中...")
|
||||
for ret in tqdm.tqdm(ret_list,desc="生成目标对应"):
|
||||
pro_dict[ret[0]]["objs"].append(ret[1])
|
||||
|
||||
sql = "SELECT * FROM tagcorresp;" #生成tags
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
for id in pro_dict:
|
||||
pro_dict[id]["tags"] = []
|
||||
# print("生成标签对应中...")
|
||||
for ret in tqdm.tqdm(ret_list,desc = "生成标签对应"):
|
||||
pro_dict[ret[0]]["tags"].append(ret[1])
|
||||
|
||||
sql = "SELECT * FROM usages;" #生成usages
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
for id in pro_dict:
|
||||
pro_dict[id]["usages"] = []
|
||||
# print("生成使用记录中...")
|
||||
for ret in tqdm.tqdm(ret_list,desc="生成使用记录"):
|
||||
u = "\t".join(json.loads(ret[3]))
|
||||
if ret[1] is None:
|
||||
pro_dict[ret[0]]["usages"].append(f"{ret[2]}\t{u}")
|
||||
else:
|
||||
pro_dict[ret[0]]["usages"].append(f"{ret[1]}\t{ret[2]}\t{u}")
|
||||
|
||||
sql = "SELECT * FROM edit_history;" #生成edit
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
for id in pro_dict:
|
||||
pro_dict[id]["edit"] = []
|
||||
# print("生成编辑历史中...")
|
||||
for ret in tqdm.tqdm(ret_list,desc="生成编辑历史"):
|
||||
pro_dict[ret[0]]["edit"].append(f"{ret[1]}\t{ret[2]}")
|
||||
|
||||
sql = "SELECT * FROM same;" #生成same
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
for id in pro_dict:
|
||||
pro_dict[id]["same"] = []
|
||||
# print("生成same联系中...")
|
||||
for ret in tqdm.tqdm(ret_list,desc="关联相同题目"):
|
||||
pro_dict[ret[0]]["same"].append(ret[1])
|
||||
pro_dict[ret[1]]["same"].append(ret[0])
|
||||
|
||||
sql = "SELECT * FROM related;" #生成related
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
for id in pro_dict:
|
||||
pro_dict[id]["related"] = []
|
||||
# print("生成related联系中...")
|
||||
for ret in tqdm.tqdm(ret_list,desc="关联相关题目"):
|
||||
pro_dict[ret[0]]["related"].append(ret[1])
|
||||
pro_dict[ret[1]]["related"].append(ret[0])
|
||||
|
||||
sql = "SELECT * FROM unrelated;" #生成unrelated
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
for id in pro_dict:
|
||||
pro_dict[id]["unrelated"] = []
|
||||
# print("生成unrelated联系中...")
|
||||
for ret in tqdm.tqdm(ret_list,desc="关联无关题目"):
|
||||
pro_dict[ret[0]]["unrelated"].append(ret[1])
|
||||
pro_dict[ret[1]]["unrelated"].append(ret[0])
|
||||
|
||||
sql = "SELECT * FROM remarks;" #生成remark
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
for id in pro_dict:
|
||||
pro_dict[id]["remark"] = []
|
||||
# print("生成备注中...")
|
||||
for ret in tqdm.tqdm(ret_list,desc="生成备注"):
|
||||
pro_dict[ret[0]]["remark"].append(f"{ret[1]}\t{ret[2]}")
|
||||
|
||||
sql = "SELECT * FROM lessonobj;" #生成obj_dict
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
# print("生成课时目标dict中...")
|
||||
for ret in tqdm.tqdm(ret_list,desc = "生成课时目标"):
|
||||
obj_dict[ret[0]] = {"objid":ret[0],"objcontent":ret[1],"unitobjid":ret[2]}
|
||||
|
||||
sql = "SELECT * FROM objinherit;" #生成predecessor
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
for objid in obj_dict:
|
||||
obj_dict[objid]["predecessor"] = []
|
||||
# print("生成课时目标前序中...")
|
||||
for ret in tqdm.tqdm(ret_list,desc = "构建课时目标顺序"):
|
||||
obj_dict[ret[0]]["predecessor"].append(ret[1])
|
||||
|
||||
sql = "SELECT * FROM unitobj;" #生成unit_obj_dict
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
# print("生成单元目标dict中...")
|
||||
for ret in tqdm.tqdm(ret_list,desc = "生成单元目标"):
|
||||
unit_obj_dict[ret[0]] = {"unitobjid":ret[0],"unitobjcontent":ret[1]}
|
||||
|
||||
|
||||
sql = "SELECT * FROM basic_knowledges;" #生成bn_dict
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
# print("生成基础知识dict中...")
|
||||
for ret in tqdm.tqdm(ret_list,desc = "生成基础知识"):
|
||||
bn_dict[ret[0]] = {"bnid":ret[0],"bncontent":ret[1]}
|
||||
|
||||
sql = "SELECT * FROM bn_obj_corresp;" #生成bn与obj的对应
|
||||
mycursor.execute(sql)
|
||||
ret_list = mycursor.fetchall()
|
||||
for bnid in bn_dict:
|
||||
bn_dict[bnid]["objs"] = []
|
||||
# print("生成基础知识与课时目标对应中...")
|
||||
for ret in tqdm.tqdm(ret_list,desc = "对应基础知识与课时目标"):
|
||||
bn_dict[ret[0]]["objs"].append(ret[1])
|
||||
return pro_dict,obj_dict,bn_dict,unit_obj_dict
|
||||
|
||||
|
||||
def generateLaTeXBodyContentfromMariaDB(cursor,id,misc): #根据id,读取的json内容adict,和字典misc来生成讲义
|
||||
#misc 样例
|
||||
#{
|
||||
|
|
|
|||
Reference in New Issue