Open Data 上架檢核流程
以下內容是供國發會 data.gov.tw 參考由各部會資料承辦人上架資料時,能夠怎麼樣檢核資料是否乾淨[
- [A] 承辦人上傳資料
- 如果是 zip rar 7z 檔,到 [B]
- 如果是 json 檔,到 [C]
- 如果是 xml 檔,到 [D]
- 如果是 csv 檔,到 [E]
- 如果是 xls, xlsx, ods 檔,到 [F]
- 如果是 pdf, doc, docx 檔,到 [Z]
- ※如果是 API, WebService
- ※如果是 kml, kmz, shp 檔
- ※如果是 txt檔
- ※如果是 其他檔,直接到 [Z] ?
- [B] 遇到壓縮檔 (zip, rar, 7z...)
- 解壓縮開來,如果裡面只有一個檔案,以這個檔案回到 [A]
- 如果解壓縮有多個檔案,進到 [Z]
- PS: 這邊可以列入一些檔名忽略清單,例如 README.txt schema.csv ... 之類的,去掉這些檔案後還有多個檔案才需要進入 [Z]
- [C] 遇到 JSON
- 進行 JSON syntax 檢查,如果檢查失敗直接進到 [Z]
- [E] 遇到 CSV
- 強制作一遍 utf-8 轉 big5 再轉回來,如果內容不變表示確定是 utf-8 CSV ,進到 [E1]
- 如果確定是 big5 csv ,把他轉成 utf-8 csv ,再進到 [E1]
- [E1] 處理 UTF-8 CSV
- 把第一行欄位抓出來檢查,如果有欄位是純數字內容(Ex: 「台北市,123,456」或是有重覆 「縣市,金額,鄉鎮,金額」 就視為有錯誤,到 [Z]
- 第二行之後每一行檢查,如果有哪一行欄數大於第一行,就視為有錯誤,到 [Z]
- 從第二行開始對每一列各自檢查,如果有哪一列有 95% 都是純數字,但是少數幾行卻有非純數字情況,有可能是把「總計」這種資訊也列入了,可能是不乾淨的 CSV ,到 [Z]
- PS: 這一步驟其實有可能誤判,最好再加上人工檢查
- 沒發現錯誤,到 [Y]
- [F] 遇到 xls, ods
- 檢查是否有用到合併儲存格、繪製框線或是儲存格背景色,或使用公式,有以上情況,就進到 [Z]
- 如果有使用多分頁的話,就進到 [Z]
- 如果沒有以上情況,表示是個轉成 csv 也不會流失資訊的 xls 或 ods,就把他轉成 csv 之後進到 [E]
完結動作
- [X] 將這個檔案上架,不視為不乾淨資料,但是標記為非 sheet 格式資料,不做額外處理
- [Y] 將這個檔案上架,標記為乾淨表格,並把資料轉成 CSV 存在資料庫中
- [Z] 將這個檔案上架,但是標記為平台無法解析,不做其他處理,並在各部會檢核時被列入不乾淨資料的統計中,並記錄是從哪個流程進到這步,供資料承辦參考改進