我使用sax來做xml的parsing,以下為幾行關鍵程式碼
#取得xml結果後,把string存到theDate,並寫入parsed.txt
elif self.CurrentData == "theDate":
with open ("./parsed.txt",'a',encoding = 'utf-8') as f:
f.write("theDate =" + self.theDate)
f.write('\n')
========================
#前面有寫讀取parsed.txt,所以這邊單純就是把theDate寫成一個list
elif line.startswith('theDate') == True:
if len(line.strip().replace(u'theDate =', u'')) > 0:
theDate_l.append(str(line.strip().replace(u'theDate=', u'')) + "")
else:
theDate_l.append("1960/01/01")
========================
重點來了
theDate = datetime.datetime.strptime(theDate, '%Y-%m-%d')
這段我常常會出現ValueError,錯誤原因是殘缺的日期可能是:
ValueError: time data '98-01-15' does not match format '%Y-%m-%d'
但是它的正確格式其實是'1998-01-15'之類的
有趣的是,出了這樣的錯誤之後,我直接重新跑那個日期的資料,結果是沒有失敗過,
也就是說一般抓因為某種因素可能會出錯,但是我目前完全找不到頭緒,我看
parsed.txt裡面紀錄的資料也都是正常的