AI & Data Dreamers練功房
寶箱片場規則
PIPELINE GATES・資料工程關卡・中階・4 題

資料工程中階・日誌與設定檔解析

這一頁是題幹試閱;登入/註冊後每題可以在瀏覽器裡執行、對答案,第一次交對 +10 XP。

  1. 01

    綜合的練習

    困難

    以下是排程伺服器的日誌,每行格式為「日期 時間 等級 訊息」(資料 hard code 於程式中):

    logs = [

    '2026-10-01 08:15:22 INFO crawler started',

    '2026-10-01 08:47:03 ERROR db timeout',

    '2026-10-01 09:02:11 WARN retry 1',

    '2026-10-01 09:05:40 ERROR db timeout',

    '2026-10-01 09:30:00 INFO crawler finished',

    '2026-10-01 10:12:09 ERROR disk full',

    ]

    請印出兩份報表:

    1. 各等級筆數,依 ERROR、WARN、INFO 的順序印出
    2. ERROR 依「小時」分組的筆數,依小時由小到大印出(小時取兩位數字,如 08)

    輸出格式:

    等級 筆數(三行,依 ERROR、WARN、INFO)

    小時 時 ERROR: 筆數(每個有 ERROR 的小時一行)

    作答登入後可作答
  2. 02

    Worker log 統計

    中等

    變數 log_text 是一段 Celery worker 的 log。請用 re 解析,印出:

    succeeded:<成功次數>
    raised:<失敗次數>
    retry:<重試次數>
    最慢:<任務名稱>[<id>] <秒數>s

    成功行的格式是 Task <名稱>[<id>] succeeded in <秒數>s;失敗行含 raised;重試行含 retry:。最慢指成功行中秒數最大者。

    本題在瀏覽器內以 Pyodide 執行,只能用 Python 標準函式庫(json、csv、collections、itertools、datetime、re、math、heapq 等)。

    作答登入後可作答
  3. 03

    .env 解析器

    容易

    變數 env_text 是一份 .env 內容。請寫一個解析器,規則:

    • 空行與 # 開頭的行略過
    • 每行以第一個 = 切成 key 與 value
    • value 若被成對的單引號或雙引號包住,去掉引號、內容原樣保留(引號後的內容忽略);沒有引號時,# 之後(含前面的空白)視為註解去掉
    • value 中的 ${VAR} 用前面已解析的變數取代

    依出現順序印出 <key>=<value>。

    本題在瀏覽器內以 Pyodide 執行,只能用 Python 標準函式庫(json、csv、collections、itertools、datetime、re、math、heapq 等)。

    作答登入後可作答
  4. 04

    cron 比對器

    中等

    第 9 章介紹 cron 的五欄格式 分 時 日 月 星期。請實作簡化版比對:第一行輸入 cron 表達式,第二行輸入要比對的時間筆數 n,接著 n 行各是一個 YYYY-MM-DD HH:MM。每個欄位支援 *、單一數字、a-b 區間、a,b,c 清單、*/n 步進(從 0 起算)。星期採 cron 慣例:0=週日、1=週一 … 6=週六(Python 的 weekday() 是週一=0,要轉換)。每筆時間印出 <時間> 符合 或 <時間> 不符合。

    本題在瀏覽器內以 Pyodide 執行,只能用 Python 標準函式庫(json、csv、collections、itertools、datetime、re、math、heapq 等)。

    作答登入後可作答