import json def find_skills_without_efficient(json_data): """ 分析JSON数据,找出所有设施中没有efficient字段的技能 """ results = {} # 遍历所有设施 for facility, facility_data in json_data.items(): # 检查是否有skills字段 if 'skills' in facility_data: skills_without_efficient = [] # 遍历该设施的所有技能 for skill_id, skill_data in facility_data['skills'].items(): # 检查技能是否有efficient字段 if 'efficient' not in skill_data: skill_info = { 'id': skill_id, 'name': skill_data.get('name', ['未知名称'])[0] # 取第一个名称 } skills_without_efficient.append(skill_info) # 如果该设施有缺少efficient的技能,添加到结果中 if skills_without_efficient: results[facility] = skills_without_efficient return results def main(): try: with open('../../resource/infrast.json', 'r', encoding='utf-8') as file: data = json.load(file) except FileNotFoundError: print("未找到 infrast.json 文件") return except json.JSONDecodeError: print("错误:JSON 文件格式不正确") return # 分析数据 missing_efficient_skills = find_skills_without_efficient(data) # 输出结果 if not missing_efficient_skills: print("所有技能都有 efficient 字段") else: print("缺少 efficient 字段的技能:") print("=" * 50) for facility, skills in missing_efficient_skills.items(): print(f"\n设施: {facility}") print("-" * 30) for skill in skills: print(f"技能 ID: {skill['id']}") print(f"技能名称: {skill['name']}") print() main()