Пишу программу, которая будет выполнять parse неструктурированного Excel-файла и формировать словарь данных такого вида:
dict = {"Курс 1":{
"Semester-1":{"Предмет":{
"maximum": 20,
"solo": 20,
"consult": 10,
"obyaz": 10,
"lessons": 10,
"practic": 10,
"lab": 10,
"sem": 10,
"cursovaya": 10,
"project" : 10,
},
"Недели":21
},
"Semester-2":{"Предмет":{
"maximum": 20,
"solo": 20,
"consult": 10,
"obyaz": 10,
"lessons": 10,
"practic": 10,
"lab": 10,
"sem": 10,
"cursovaya": 10,
"project" : 10,
},
"Недели":21
},
},
"Курс 2":{
"Semester-3":{"Предмет":{
"maximum": 20,
"solo": 20,
"consult": 10,
"obyaz": 10,
"lessons": 10,
"practic": 10,
"lab": 10,
"sem": 10,
"cursovaya": 10,
"project" : 10,
},
"Недели":21
},
"Semester-4":{"Предмет":{
"maximum": 20,
"solo": 20,
"consult": 10,
"obyaz": 10,
"lessons": 10,
"practic": 10,
"lab": 10,
"sem": 10,
"cursovaya": 10,
"project" : 10,
},
"Недели":21
},
}}
Столкнулся с такой проблемой, что не совсем понимаю, как сформировать словарь такого вида, данный словарь мне в будущем потребуется для вставки значений в модель Django.
Сами данные я частично собрал, но не совсем понимаю, как данные значения записать в словарь в парами ключ-значение
import xlrd
excel_data_file = xlrd.open_workbook('excel/god_nabora.xls')
sheet = excel_data_file.sheet_by_index(0)
row_number = sheet.nrows
main_subjects = []
main_course = []
main_semesters = []
main_week = []
main_hours_name = []
main_hours = []
if row_number > 0:
# Предметы
for row in range(20, 27):
main_subjects.append(str(sheet.row(row)[2]).replace("text:","").replace("'","").replace(":"," ").replace("."," ").replace("empty","пустой"))
# Курсы
for row in range(20,100):
key = (str(sheet.row(1)[row]).replace("text:","").replace("'","").replace(":"," ").replace("."," ").replace("empty","пустой"))
if key != 'пустой ':
main_course.append(key)
# Семестры
for row in range(20,100):
key = (str(sheet.row(2)[row]).replace("text:","").replace("'","").replace(":"," ").replace("."," ").replace("empty","пустой"))
if key != 'пустой ':
main_semesters.append(key)
# Количество недель
for row in range(20,100):
key = (str(sheet.row(3)[row]).replace("text:","").replace("'","").replace(":"," ").replace("."," ").replace("empty","пустой"))
if key != 'пустой ':
main_week.append(key)
# За что часы
for row in range(20,30):
key = (str(sheet.row(4)[row]).replace("text:","").replace("'","").replace(":"," ").replace("."," ").replace("empty","пустой"))
if key != 'пустой ':
main_hours_name.append(key)
# сами часы
for row in range(20,100):
key = (str(sheet.row(20)[row]).replace("text:","").replace("'","").replace(":"," ").replace("."," ").replace("empty","").replace("number", ""))
if key != ' ':
main_hours.append(key)
print("Список семестров - ",main_semesters)
print("Список курсов - ", main_course)
print("Недель в семестре - ", main_week)
print("Название нагрузки часы в одном семестре - ", main_hours_name)
print("Какие часы в одном семестре - ", main_hours)
Скрин из Excel-файла, который разбирал