处理json生成可用的数据
import jsonimport re#打开文件fp = open("./chat.json","r",encoding='utf-8')load_dict = json.load(fp)fp.close()jsonObj={}#检测是否有英文def checkChinese(contents ):zhmodel = re.compile(u'[\u4e00-\u9fa5]')return bool(zhmodel.search(contents))def checkEnglish(contents ):return bool(re.search('[a-z]', contents))def makeObj(context):keyStr = ""curObj= Nonefor i in range(0,len(context)):cur = context[i:i + 1]if cur == " ":continuekeyStr += curisLast=Falseif i == (len(context)-1):#最后一个isLast = Trueprint(keyStr)else:nextstr=context[i+1:i+2]if checkEnglish(cur) and checkEnglish(nextstr):continueif curObj != None:if curObj.__contains__(keyStr):curObj = curObj.get(keyStr);else:tmp={}curObj.setdefault(keyStr, tmp)curObj=tmpelse:if jsonObj.__contains__(keyStr):curObj = jsonObj.get(keyStr);else:curObj = {}jsonObj.setdefault(keyStr,curObj)if isLast:curObj.setdefault("islast",1)keyStr = ""for name in load_dict.keys():if len(name)==1:jsonObj.setdefault(name, {"islast":1})else:isChinese = checkChinese(name)if isChinese:makeObj(name)# jsonObj.setdefault( name, 1)else:jsonObj.setdefault( name, {})# print(type(str))# ary = str.split(",");### len = len(ary);# jsonObj={}# for item in ary:## str= item[1:-1]# isEn = bool(re.search('[a-z]', str))# jsonObj.setdefault(str, 1)# if isEn:# jsonObj.setdefault( str, 1)# print( ary[i])# else:# jsonObj.setdefault(item, 1)print(jsonObj)f = open("./chatmg.json","w",encoding='utf-8')json.dump(jsonObj,f,indent=4,ensure_ascii=False)print("加载入文件完成...")