alexefremo
Июнь 22, 2013 20:49:53
Здравствуйте. Перед мной стоит следующая задача: есть одна база данных с учениками в которой содержится ФИО и дата рождения. И есть импортируемый файл csv, в котором содержится информация об учениках, участвовавших в олимпиаде. При импорте файла запускается цикл сравнения ФИО учеников. В базе учеников могут содержаться ученики с одинаковыми ФИО. Поэтому и необходим алгоритм сравнения учеников на наличие двух одинаковых. Что бы оставить только одного ученика.
for idx, d in enumerate(student):
for ids, s in enumerate(student):
if d['Name'] == s['Name'] and idx != ids:
print d,idx
l=raw_input('input number to delete')
student.pop(int(l))
for m in student:
for k in olympiad:
if m['Name']==k['Name']:
this.append(k)
Это код на сравнение в Питоне. Помогите пожалуйста “перевести” этот код на интерфейс фреймворка bottle. так как общаться с командной строкой как-то не то. Спасибо огромное.
doza_and
Июнь 23, 2013 09:50:51
Не видно где вообще в этой задаче нужен пользовательский интерфейс. Удаление дублирующихся записей обычно делается средствами СУБД. Создайте для Ф.И.О. Уникальный составной ключик.
В вашем случае гораздо проще скинуть всех студентов в файл на построчной основе и почистить список текстовым редактором. Это будет и гораздо удобнее чем web интерфейс.
alexefremo
Июнь 23, 2013 10:03:53
Абсолютно с вами согласен. Пользовательский интерфейс необходим для самостоятельного “выбора” какому ученику добавить запись. Уже существуют списки с олимпиадами без айдишников. Поэтому и необходимо такое решение проблемы.
doza_and
Июнь 23, 2013 12:20:08
Какого объема база и файлы с результатами олимпиады?
alexefremo
Июнь 23, 2013 12:37:10
База состоит из учеников. 11 классов. по 4 параллели человек по 3. порядка 1000 записей. в запись ученика добавляется запись с олимпиадой. субд - MongoDB. Происходит сравнение с временной базой олимпиад в которых информация об ученике, его ФИО и дата рождения, и базой учеников, те же ФИО и дата рождения. Если эти значения равны в запись ученика добавляется информация об олимпиаде. Структура документа ученик:
{“ФИО”:“Петров Петр Петрович”
“Дата рождения”:“21.12.2002”
Олимпиады:[{
“Название”:“Олимпиада по русскому языку”,
“Баллов”:“60”,
“Место”:“”},
“Название”:“Олимпиада по немецкому языку”,
“Баллов”:“80”
“Место”:“1е”}]}
alexefremo
Июнь 23, 2013 12:38:13
Допустим я могу передать данные, но для этого мне нужно получить другой темплейт, что выведет меня из цикла. Как мне получить это в цикле?