我需要创建一个字典,其键是唯一的课程代码,其值是具有单个键值对的字典,按字母顺序描述该课程代码可用的部分,以及属于特定部分的 ID 号,按升序排列。
数据来自名为 student_data 的字典,如下所示:
student_data[:3]
>>>[{'enlistment': [{'course code': 'UK 60', 'section': 'A'},
{'course code': 'GF 24', 'section': 'B'},
{'course code': 'ME 40', 'section': 'B'},
{'course code': 'VY 44', 'section': 'D'},
{'course code': 'EN 94', 'section': 'B'}],
'id': '201001', 'paid': True, 'school': 'SOSE', 'year level': 2},
{'enlistment': [{'course code': 'EQ 61', 'section': 'D'},
{'course code': 'UZ 22', 'section': 'B'},
{'course code': 'KS 36', 'section': 'B'},
{'course code': 'VH 63', 'section': 'A'},
{'course code': 'IW 81', 'section': 'C'}],
'id': '211002', 'paid': True, 'school': 'JGSOM', 'year level': 1},
{'enlistment': [{'course code': 'WE 15', 'section': 'D'},
{'course code': 'ZP 68', 'section': 'A'},
{'course code': 'GI 78', 'section': 'A'},
{'course code': 'GK 72', 'section': 'C'},
{'course code': 'FA 24', 'section': 'D'},
{'course code': 'UJ 28', 'section': 'A'}],
'id': '201003', 'paid': True, 'school': 'JGSOM', 'year level': 2}]
所需输出的格式:
{
course_code: [{
"section": section_letter,
"class list": [
id_number_1,
id_number_2,
id_number_3,
]
}
course_code: [{
"section": section_letter,
"class list": [
id_number_1,
id_number_2,
id_number_3,
]
}
]
}
我目前的代码看起来像这样,但这仅包含每个课程代码的部分。我还需要在每个课程代码的每个部分下获取 ID 号。有谁知道如何通过修改下面的代码来做到这一点?
courses = {}
for i in student_data:
for j in i['enlistment']:
if j['course code'] not in courses:
courses[j['course code']] = {'sections':[j['section']]}
else:
if j['section'] not in courses[j['course code']]['sections']:
courses[j['course code']]['sections'].append(j['section'])
for i in courses.keys():
courses[i]['sections'] = sorted(courses[i]['sections'])
请帮忙