修改metadata 施工中, ObtainDatatoModify需要修改(项目切分)
This commit is contained in:
parent
45a342cfe2
commit
03f0d20163
|
|
@ -832,31 +832,42 @@ def AppendUsageData2024(prodict,field_id_and_content):
|
|||
return (field,id,content,output) #返回四元组: 题号, 字段, 内容, 待确定是否要添加的字符串(不含FORCE字样的行为旧结果,含FORCE字样的行为新结果,FORCE是运行后强制添加)
|
||||
|
||||
|
||||
def ImportMetadata(prodict,objdict,fieldsdict,metadatafilepath,pendingdatafilepath): #metadata自动修改, 根据字段自适应修改, 参数为题库字典, 目标字典, 字段字典, metadata文本文件路径, 待确定是否替换的内容的存放路径
|
||||
def ImportMetadata(db,metadatafilepath): #metadata自动修改, 根据字段自适应修改, 参数为题库字典, 目标字典, 字段字典, metadata文本文件路径, 待确定是否替换的内容的存放路径
|
||||
fieldsdict = {"objs":"objappend",
|
||||
"tags":"tagappend",
|
||||
"ans":"overwrite",
|
||||
"solution":"overwrite",
|
||||
"usages":"usageappend",
|
||||
"same":"mutualappend",
|
||||
"related":"mutualappend",
|
||||
"unrelated":"mutualappend",
|
||||
"space":"overwrite",
|
||||
"remark":"remarkappend"
|
||||
}
|
||||
data_to_modify = ObtainDatatoModify(metadatafilepath,fieldsdict)
|
||||
outputstring = "usages\n\n"
|
||||
print(data_to_modify)
|
||||
for item in data_to_modify:
|
||||
field = item[0]
|
||||
if field == "NotAField":
|
||||
print("字段名有误")
|
||||
print(f"项目 {item[1]} {item[2]} 字段名有误, 未对数据库作更改, 请检查!!!")
|
||||
db.rollback()
|
||||
db.close()
|
||||
return 1
|
||||
else:
|
||||
method = fieldsdict[field]["Method"]
|
||||
if method == "overwrite":
|
||||
feedback = OverwriteData(prodict,fieldsdict,item)
|
||||
elif method == "append":
|
||||
feedback = AppendData(prodict,fieldsdict,item)
|
||||
elif method == "mutualappend":
|
||||
feedback = AppendMutualData(prodict,item)
|
||||
elif method == "objappend":
|
||||
feedback = AppendObjData(prodict,objdict,item)
|
||||
elif method == "usageappend":
|
||||
feedback = AppendUsageData2024(prodict,item)
|
||||
outputstring += feedback[3]
|
||||
elif method == "fixed":
|
||||
print("字段 %s 不可按此方式修改"%field)
|
||||
SaveTextFile(outputstring,pendingdatafilepath)
|
||||
return outputstring # 已在数据库中修改, 之后需要将数据库写入一次, 返回1表示字段名有误, 返回其他表示成功进行了修改
|
||||
method = fieldsdict[field]
|
||||
print(method)
|
||||
|
||||
|
||||
return 0 # 已在数据库中修改, 之后需要将数据库写入一次, 返回1表示字段名有误, 返回其他表示成功进行了修改
|
||||
|
||||
def overwriteinDB(mydb,field,id,content_string):
|
||||
mycursor = mydb.cursor()
|
||||
sql = f"UPDATE problems SET {field} = %s WHERE ID = %s;"
|
||||
val = (content_string,id)
|
||||
mycursor.execute(sql,val)
|
||||
sql = "INSERT INTO logs (DATE,TIME,username,ID,action,db_content) VALUE (%s,%s,%s,%s,%s,%s);"
|
||||
val = (GetDate(),GetTime(),get_git_username(),id,f"更改 {field} 数据",content_string)
|
||||
mycursor.execute(sql,val)
|
||||
|
||||
def parseUsage(usagestring): #对单行usage信息进行分词
|
||||
usagedict = {}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
metadatafilepath = "文本文件/metadata.txt"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
from database_tools_2 import *
|
||||
|
||||
# fieldsdict = load_dict("../题库0.3/ProblemFields.json")
|
||||
# prodict = load_dict("../题库0.3/Problems.json")
|
||||
# objdict = load_dict("../题库0.3/LessonObj.json")
|
||||
|
||||
mydb = connect(hostname = "wwylss.synology.me", port = "13306", username="tikuuser", pwd="Kjmathds_2024", db = "tikutest")
|
||||
|
||||
|
||||
ImportMetadata(mydb,metadatafilepath)
|
||||
|
||||
mydb.close()
|
||||
# save_dict(prodict,"../题库0.3/Problems.json")
|
||||
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
objs
|
||||
|
||||
1
|
||||
K0201001B
|
||||
|
||||
3
|
||||
K0302004X
|
||||
|
||||
tags
|
||||
|
||||
20
|
||||
第四单元
|
||||
第五单元
|
||||
|
||||
300
|
||||
复数
|
||||
|
||||
usages
|
||||
|
||||
500
|
||||
20240417 2026届高一12班 0.955
|
||||
|
||||
501
|
||||
20240417 2026届高一10班 0.945
|
||||
|
||||
remark
|
||||
|
||||
2111
|
||||
20240417 测试
|
||||
20240417 测试2
|
||||
|
||||
ans
|
||||
|
||||
1
|
||||
205
|
||||
|
||||
2
|
||||
20501
|
||||
|
||||
Reference in New Issue