|
保存为json中文Unicode乱码:可以看到,中文字符没有乱码,只是出现了反斜杠,此时解决方法应考虑是否进行了二次序列化。一、原因1在dump时加入ensure_ascii=False即可解决,即json.dump(json_data,f,indent=4,ensure_ascii=False)二、原因2json.dumps(data_dict,ensure_ascii=False)已经进行了序列化,在写入文件时,又采用json.dump(json_data,f,indent=4,ensure_ascii=False)方法导致二次序列化,改为f.write(json_data)即可。importosimportjsonimportnumpyasnpnp.set_printoptions(linewidth=400)data_list=[]result_list=[]is_duplicate=[]forfilenameinos.listdir("./log_data"):print(filename)withopen("./log_data/"+filename,'r',encoding="utf-8")asf:line=f.readline()whileline:data=line[line.find("【param】")+len("【param】")+1:line.find("【result】")-2]result=line[line.find("【result】")+len("【result】")+1:line.find(",【headers】")]data_list.append(data)result_list.append(result)line=f.readline()effective_set=set()print(len(data_list))fordataindata_list:try:data_dict=json.loads(data)trace_id=data_dict.pop("trace_id")print(data_dict["match_start_date"])effective_set.add(json.dumps(data_dict,ensure_ascii=False))except:passcontinueprint(len(effective_set))n=1forjson_dataineffective_set:ifn
|
|