2010-05-14 5 views
2

직원 기록이있는 Excel CSV 파일이 있습니다. 이런 식으로 뭔가 :중첩 사전에 Excel CSV; 목록 이해

mail,first_name,surname,employee_id,manager_id,telephone_number 
[email protected],john,smith,503422,503423,+65(2)3423-2433 
[email protected],george,brown,503097,503098,+65(2)3423-9782 
.... 

내가 중첩 사전에이를 넣어 DictReader을 사용하고 있습니다 :

import csv 
gd_extract = csv.DictReader(open('filename 20100331 original.csv'), dialect='excel') 
employees = dict([(row['employee_id'], row) for row in gp_extract]) 

이 그것을 할 수있는 적절한 방법 이상 -이 작업을 수행하지만 오른쪽입니다 방법? 더 효율적인 것? 또한 재미있는 점은 IDLE에서 셸에서 "직원"을 인쇄하려고하면 IDLE이 충돌하는 것으로 보입니다 (약 1051 개의 행이 있음). 내부 DICT

두 번째 문제 문제에서

2. 제거 employee_id입니다, 나는 모든 값의 중첩 된 사전과 같은 값으로, employee_id입니다 색인 사전에 퍼팅 해요 - 그러나, employee_id입니다입니다 또한 키 : 중복 된 중첩 된 사전 내부 값? 내부 사전에서 제외시킬 방법이 있습니까? 예를 들어, 모든 전화 번호가 잘못된 형식으로되어 있습니다, 그래서 우리는 거기에 몇 가지 정규식을 할 필요가 -

3. 우리는 가져온 데이터에 몇 가지 조작을 할 필요

셋째 이해의 데이터를 조작 할 수 있습니다. 또한 manager_id를 실제 관리자 이름과 이메일 주소로 변환해야합니다. 대부분의 관리자는 동일한 파일에 있지만 다른 사람은 external_contractors CSV에 있습니다. 비슷한 CSV이지만 동일한 형식이 아닙니다. 필자는 별도의 dict로 가져올 수 있습니다.

이 두 항목은 단일 목록 이해 내에서 수행 할 수있는 작업입니까, 아니면 for 루프를 사용해야합니까? 아니면 여러 독해가 작동합니까? (샘플 코드는 정말 굉장합니다). 아니면 파이썬에서 더 똑똑한 방법이 있습니까?

건배, 빅터

답변