hello!
I am doing my homework now and I am kinda stuck. Could any of you help me out?
Here is the homework problem:
fieldict(filename) reads a file in DOT format and
returns a dictionary with the DOT CMPLID, converted to an
integer, as the key, and a tuple as the corresponding value
for that key. The format of the tuple is:
(manufacturer, date, crash, city, state)
where these tuple items have the following types:
manufacturer -- this comes from the MFR_NAME field in the DOT format
date -- this comes from the FAILDATE field in the DOT format,
but converted to a Python datetime.date object
crash -- this comes from the CRASH field in the DOT format,
but converted to a Python bool type (True for a crash)
city -- comes from the CITY field in the DOT format
state -- comes from the STATE field in the DOT format
should return: fieldict("DOT500.txt")[82]
('FORD MOTOR COMPANY', datetime.date(1995, 1, 1), False, 'MARBLE HEAD', 'MA')
and here are parts of the data:
1 958164 TOYOTA MOTOR CORPORATION TOYOTA LAND CRUISER 1994
19941223 N 0 0 SERVICE BRAKES,
HYDRAULIC:ANTILOCK ARNOLD CA JT3DJ81W8R0 19950103
19950103 ABS SYSTEM FAILURE, AT 20MPH. TT EVOQ
V
2 958156 TOYOTA MOTOR CORPORATION TOYOTA PASEO 1994 Y
19941226 N 0 0 PARKING BRAKE:CONVENTIONAL SAN
JOSE CA JT2EL45U5R0 19950103 19950103 1
PARKED ON FLAT SURFACE EMERGENCY BRAKING ENGAGED VEHICLE ROLLED REARWARD.
TT EVOQ
V
3 958124 TOYOTA MOTOR CORPORATION TOYOTA COROLLA 1994 Y
19941128 N 0 0 AIR BAGS:FRONTAL PHOENIX
AZ 19950103 19950103 UPON FRONTAL
COLLISION, AIR BAG FAILED TO DEPLOY. VEHICLE CLASSIFIED AS TOTALED. PLEASE
DESCRIBE DETAILS. TT EVOQ
V
4 958122 NISSAN NORTH AMERICA, INC. NISSAN MAXIMA 1994
19950103 N 0 0 SUSPENSION TUCSON AZ
JN1HJ01F4RT 19950103 19950103 THE STRUT WAS
BAD THERE IS A NOISE ON THE PASSENGER SIDE DOOR AND THE ENGINE LIGHT
MALFUNCTION. TT EVOQ
V
5 958122 NISSAN NORTH AMERICA, INC. NISSAN MAXIMA 1994
19950103 N 0 0 ENGINE AND ENGINE COOLING:ENGINE
TUCSON AZ JN1HJ01F4RT 19950103 19950103
THE STRUT WAS BAD THERE IS A NOISE ON THE PASSENGER SIDE DOOR AND THE
ENGINE LIGHT MALFUNCTION. TT EVOQ
V
Here is my code and I dont know why my code is only reading the 500th line of
the file. Thanks for your help!
import datetime
def boolean(S):
if S=="Y":
return True
return False
def fieldict(filename):
D={}
with open(filename) as FileObject:
for lines in FileObject:
linelist=lines.split('\t')
Key=linelist[0]
ValCity=(linelist[12]).strip()
ValState=linelist[13]
ValOne=linelist[2]
ValTwo=linelist[6]
ValThree=boolean(linelist[7])
D={Key:(ValOne, ValTwo, ValThree, ValCity,ValState)}
return D
print fieldict("DOT500.txt")
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor