import json with open("sub_mbpp.json", "r", encoding="utf-8") as f: data = json.load(f) # token_counts=[33,33,34] # token_counts_I=token_counts[0]*0.01*974 # token_counts_II=token_counts[1]*0.01*974 # token_counts_III=164-token_counts_I-token_counts_II # # cyclomatic_complexity=[33,33,34] # cyclomatic_complexity_I=cyclomatic_complexity[0]*0.01*974 # cyclomatic_complexity_II=cyclomatic_complexity[1]*0.01*974 # cyclomatic_complexity_III=164-cyclomatic_complexity_II-cyclomatic_complexity_I token_counts=[33,33,34] token_counts_I=token_counts[0]*0.01*500 token_counts_II=token_counts[1]*0.01*500 token_counts_III=164-token_counts_I-token_counts_II cyclomatic_complexity=[33,33,34] cyclomatic_complexity_I=cyclomatic_complexity[0]*0.01*500 cyclomatic_complexity_II=cyclomatic_complexity[1]*0.01*500 cyclomatic_complexity_III=164-cyclomatic_complexity_II-cyclomatic_complexity_I data.sort(key=lambda x: x['token']) for i, item in enumerate(data): if i < token_counts_I: item['token_diff'] = 0 elif i < token_counts_I + token_counts_II: item['token_diff'] = 1 else: item['token_diff'] = 2 data.sort(key=lambda x: x['cc']) for i, item in enumerate(data): if i < cyclomatic_complexity_I: item['CC_diff'] = 0 elif i < cyclomatic_complexity_I + cyclomatic_complexity_II: item['CC_diff'] = 1 else: item['CC_diff'] = 2 data.sort(key=lambda x: x['id']) # 将更新后的数据写回JSON文件 with open('QS.json', 'w', encoding='utf-8') as file: json.dump(data, file, ensure_ascii=False, indent=4)