我:上傳要抓取資料的資料表結構,本範例為DMOJ的judge_problem資料表儲存程式解題的問題,抓取資料表的每個欄位
Google AI:太棒了,有了這些 SQL 語句,我可以直接根據你的 judge_problem 資料表格式寫一個 Python 範例。
由於你的語法(例如 ENGINE=InnoDB)顯示你使用的是 MySQL/MariaDB,你需要先安裝連接庫:
pip install mysql-connector-python
以下是針對你的資料表結構,抓取 題目代碼 (code)、名稱 (name) 以及 AC 率 (ac_rate) 的程式碼範例:
我:抓取每個欄位
Google AI:如果要抓取 judge_problem 資料表中的所有欄位(包含長文本描述和各種開關狀態),建議搭配 Pandas 來處理,因為你的欄位非常多(超過 20 個),用 Pandas 可以自動對齊欄位名稱,也能方便地匯出成 Excel 或 JSON。
這裡提供一個完整抓取所有欄位的 Python 腳本:
我:加上description 和 summary 欄位
Google AI:好的,針對這兩個 longtext 欄位(description 和 summary),我優化了程式碼。
由於這兩個欄位包含大量的 Markdown 語法和換行符號,直接在終端機(Terminal)印出會非常凌亂。因此,我在程式碼中加入了格式化輸出,並額外附上匯出 Excel/JSON 的功能,這樣你之後在查看題目描述時會清晰很多。
我:每一列資料儲存成一個文字檔案,使用code為檔名
Google AI:這是一個非常實用的做法!將每一道題目獨立存成文字檔,特別適合用來做題目管理或版本控制(如上傳到 GitHub)。
我為你撰寫了這段程式碼,它會執行以下操作:
建立一個名為 problems_export 的資料夾。
將 judge_problem 表中的所有欄位資料格式化後,以該題目的 code 命名存成 .txt 檔。
檔案內容會包含題目的基本資訊、完整描述 (Description) 與 摘要 (Summary)。