> Here is my code and I dont know why my code is only reading the 500th line of 
> the file. Thanks for your help!

Let me offer you some hints:

This sounds like only the last line is getting saved into the dict.
Yet your loop is clearly going over each line.  Ergo, the problem is
probably in the part where you add the line to the dict.

Focus on that part and see what is happening versus what you want to
have happening.  Double check what command you are actually giving.

On Tue, Oct 30, 2012 at 6:01 PM, Brayden Zhao <[email protected]> wrote:
> 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
>



-- 
Brett Ritter / SwiftOne
[email protected]
_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to