#list #file #dictionary
Вопрос:
Я очень растерян… После создания словаря я должен предложить пользователю ввести номер сотрудника. Затем я должен вывести всю информацию о сотруднике для конкретного сотрудника, а затем запросить у пользователя номер другого сотрудника. Файл со всей информацией называется employee_records_small.csv. Он включает Идентификатор Emp,Префикс имени,Имя,Отчество,Фамилию,Пол,Адрес электронной почты,Номер телефона ,Название места,Округ,Город,Штат,Почтовый индекс,Регион, в таком порядке. Вот что у меня есть до сих пор:
def bulkEMail(emailList): print('n*** RESULTS *** n') for emailInfo in emailList: print('Email Info: {} {} {}'.format( emailInfo['e mail'], emailInfo['first name'], emailInfo['last name'])) return True fh = None try: fh = open('/Users/etaibally/Desktop/employee_records_small.csv', 'r') except Exception as err: print('file not found', err) if fh != None: fh.close() fh = None if fh != None: # Read the header line line = fh.readline() line = line.lower() line = line.replace(' ,', ',').replace(', ', ',') headerItems = line.split(',') emailList = {} dictKeyA = headerItems[0] line = fh.readline() while line != '': lineItems = line.split(',') # Initialize dictionary variable emailDict = {} # For every CSV value in the input line for pos, value in enumerate(lineItems): dictKey = headerItems[pos] emailDict[dictKey] = value # next line line = fh.readline() EmpID = input('Enter ID#: ') ID = emailDict[EmpID] print(ID) # Close file fh.close() status = bulkEMail(emailList)
Комментарии:
1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.
Ответ №1:
Вы можете попробовать использовать Панд. Фактически, вы можете загрузить свой csv-файл в фрейм данных pandas с помощью команды data = pandas.read_csv(path to file, index_col=column_number_of_employee_number)
. Затем вы можете найти конкретные данные о сотруднике, выполнив data[employee_number]
следующие действия .
Комментарии:
1. есть ли способ сделать это без Панд? Это для оценки класса
2. В противном случае вы могли бы создать словарь словарей. «Внешний» словарь будет использоваться для выбора сотрудника по его номеру, и значение, связанное с ним, будет списком диктантов (тех, которые вы уже создали). Затем вы можете повторить его, чтобы распечатать все.