2014-02-06 119 views
0
dic = dict() 
with open('C:\\Users\\aman\\Documents\\dataVal.txt', 'r') as fh: 
    for l in fh.readlines(): 
     try: 
      lines = l.split() 
      date, sub, num = lines[0], lines[1], [int(x) for x in lines[2:]] 
      dic.setdefault(date, {}) 
      dic[date][sub] = num 
     except Exception as er: 
      print er 
print dic 

有人可以幫忙嗎? 它給我一個錯誤,說無效文字爲int()與基地10:'16:00:00'。如何擺脫它?只爲您的信息'16:00:00' 是在表中的第一列中的TXT文件無效文字爲int()以10爲底:'16:00:00'

16:00:00  Maths 100 95 65 32 23 45 77 54 78 88 45 67 89 
17:00:00 Science 45 53 76 78 54 78 34 99 55 100 45 56 78 
18:00:00 English 43 45 56 76 98 34 65 34 45 67 76 34 98 
+0

請豎起你解析線和錯誤。順便說一句,如果你也是字符串類型,請將int(x)更改爲str(x)。 –

+0

以及你想要的輸出? 'time as key' –

+0

你可以粘貼你的錯誤,'16:00:00'可以用作字符串,所以你的代碼應該可以工作 –

回答

1

我改變INT(X),以STR(X),請你試試。如果那是錯誤。

dic = dict() 
with open('C:\\Users\\aman\\Documents\\dataVal.txt', 'r') as fh: 
    for l in fh.readlines(): 
     try: 
      lines = l.split() 
      date, sub, num = lines[0], lines[1], [str(x) for x in lines[2:]] 
      dic.setdefault(date, {}) 
      dic[date][sub] = num 
     except Exception as er: 
      print er 
print dic 

輸出:

{'17:00:00': {'Science': ['45', '53', '76', '78', '54', '78', '34', '99', '55', '100', '45', '56', '78']}, 
    '18:00:00': {'English': ['43', '45', '56', '76', '98', '34', '65', '34', '45', '67', '76', '34', '98']}, 
    '16:00:00': {'Maths': ['100', '95', '65', '32', '23', '45', '77', '54', '78', '88', '45', '67', '89']}} 
+0

請把錯誤 –

+0

啊對不起,我改變了'try'的縮進和'except'現在檢查 –

+0

這個作品很完美。謝啦 – sam

相關問題