[問題] 讀取CSV檔的內容建成物件

看板Python作者 (不差不歪 一插就歪)時間6年前 (2018/05/22 07:01), 6年前編輯推噓1(103)
留言4則, 1人參與, 6年前最新討論串1/2 (看更多)
小弟是最近在學Python的新手 遇到一個問題試好久都想不出來 就是如何把csv檔的內容建成物件 網路上只有查到一種方法 就是先宣告一個空陣列再藉由它加入到目標類別 但我後來測試卻也一直行不通 我大致列一下code方便大大修正一下: class Midterm: # 先宣告以下3個objects為空 這裡先略過 def __init__(self, problem, status, subTime): self.problem = problem self.status = status self.subTime = subTime myList = [] import csv midtermFile = "midterm.csv" fh = open(midtermFile, 'r', newline = '') reader = csv.reader(fh) headers = next(reader) for row in reader: myList.append(Midterm(int(row[2]), row[3], row[6])) # 那3個objects資料分別來自此csv檔的第3,4,7個 print(row) # 這裡測試會出來 print(Midterm.problem) # 但若改直接測試輸出的物件卻是空白 # 其實捲軸有在跑並留出一大塊空白 貌似只是沒有顯示出來 # 但後續切割時間資料時就顯示沒切成功找不到subTime.H fh.close() 另外還有個問題 就是我的subTime之後還需要跟別的時間字串比較先後 用datetime.strptime轉成時間型態好像無法比大小 所以我打算用.split(":")切成時、分、秒再用邏輯比較 這樣subTime要另外宣告成一個子類別嗎 因為我若不這樣而把它們宣告在Midterm.subTime.H #還有.M、.S __init__就要強制我在讀取csv時同時起始.H、.M、.S的值了 以上兩個問題麻煩大大們給點意見了 謝謝﹗ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.24.118.82 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1526943707.A.E74.html

05/22 16:01, 6年前 , 1F
你目前只把物件放在list裡面而已 如果你要看裡面放什麼
05/22 16:01, 1F

05/22 16:01, 6年前 , 2F
應該輸出myList[-1].你要的attribute
05/22 16:01, 2F

05/22 16:03, 6年前 , 3F
datetime部分的比較有兩個都是datetime型態嗎? 覺得日
05/22 16:03, 3F

05/22 16:03, 6年前 , 4F
期比較直接丟給Python處理就好
05/22 16:03, 4F
因為我原本搞錯物件的對象了 所以轉datetime的部分因此並未成功轉成目標 經過下一篇大大的提示後確實解決問題了 也謝謝泰坦大的回覆! ※ 編輯: ChenXY (114.36.189.59), 05/25/2018 18:41:25
文章代碼(AID): #1R0q_Rvq (Python)
文章代碼(AID): #1R0q_Rvq (Python)