🔧Python 自動化報表腳本常見錯誤解析:意外縮排與時間格式問題全解
🧠 前言:當自動化報表「突然罷工」
在企業內部報表系統中,許多工程師會使用 Python 腳本自動匯出報表。這種腳本能在固定週期(例如每週三、每月五號)自動執行資料庫查詢、過濾欄位並輸出 CSV 或 PDF。
但對初學者而言,最常見的問題不是邏輯錯,而是──
👉 縮排(indentation)與時間格式(datetime)錯誤。
這篇文章將用淺顯的方式,教你如何辨識並修正這兩種經典錯誤。
💥 錯誤一:TypeError「str + datetime」
🧩 問題現象
執行時出現訊息:
這代表程式試圖把「文字」和「時間物件」直接相加,例如:
Python 不允許把時間直接和字串串起來。
✅ 正確做法
要先把時間轉成文字格式(string),例如:
這樣 SQL 查詢語句就會正確輸出:
⚠️ 錯誤二:SyntaxError「unexpected indent」
🧩 問題現象
當 Python 說:
意思是:縮排層級錯亂。
Python 是靠「縮排」判斷程式區塊的,如果多一格空白、或混用 Tab 與空白,都會報錯。
💡 常見原因
-
不小心在檔案開頭多按了一下空白。
-
if、for等區塊結束後,下一行沒有完全對齊最左邊。 -
貼上別人程式碼時,混用了 Tab 和空白。
✅ 解決方法
-
確保整份程式統一用「空白」縮排(通常 4 格)。
-
不要在檔案最上方或最下方留下空白行。
-
if、for區塊結束後的下一行,要回到最左邊:
錯誤示範:
正確寫法:
🧾 延伸:安全組合檔案路徑與字串
在自動化報表中,很多人會直接用:
但這樣會觸發跳脫字元錯誤(\e, \A 等)。
更穩定的寫法是:
或使用 Python 的 raw string:
🚀 最佳實踐:封裝成函式
讓主程式乾淨、結構明確:
這樣每個分支的縮排就單純明瞭,也不容易出現「unexpected indent」。
🔍 總結:初學者最該記住的三件事
-
縮排就是語法的一部分,別讓多一格空白毀了整支程式。
-
時間要先格式化成字串再使用,尤其在 SQL 或檔名中。
-
盡量封裝功能,讓程式層級清晰、可維護。
📘 延伸閱讀
✍️ 結語
在自動化開發的世界裡,錯誤訊息不是敵人,而是導師。
每一個「SyntaxError」或「TypeError」,都是 Python 提醒你:「語法邏輯沒錯,但細節需要更精準」。
理解這些原理後,你就能讓每一次報表自動化,穩定、準確又高效。
留言
張貼留言