iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0
生成式 AI

30 天生成式 AI 工作流:社群經營者的自動化實戰系列 第 20

Day 20|資料獵人養成記(4)資料魔術師登場:用 Code 節點清洗資料 ✨

  • 分享至 

  • xImage
  •  

資料本身並不會說話,只有被整理過的資料,才能講故事。

上一篇,我們已經把每本書的「分類、價格、庫存資訊」一筆筆爬進 Airtable。

不過你有沒有注意到,「庫存」目前長得有點囉嗦,比如:

In stock (19 available)

我們只想知道有幾本書就好(例如:19),這樣之後才能進行數據分析、製作圖表、甚至設定庫存告警。

那要怎麼從文字中擷取出數字呢?

本篇工作流可在此下載(連結


✨ 兩種做法,哪種更適合?

  1. 問 AI Agent 每次幫你抓數字

    缺點是成本很高:假設有 1000 本書,每本都要問一次 AI,費用會直線上升。

  2. 一次請 AI 寫好程式,讓 n8n 自己跑

    用 Code 節點 放上這段程式碼,之後不管跑幾本書都能自動處理,只要請 AI 一次就好

我們要做的是第二種,用 Javascript + Code 節點,把「Availability」文字轉成純數字欄位「Number」。


🧠 請 ChatGPT 幫你寫 Code 節點的 Javascript

  1. 在前一篇的 HTML Extract 節點後面,新增一個 Code 節點
  2. 先複製 HTML Extract 輸出的範例資料,像這樣:
[
  {
    "Classification": "Young Adult",
    "Price": "£17.46",
    "Availability": "In stock (19 available)"
  }
]
  1. 貼給 ChatGPT,並這樣問它:

下面是我 n8n 某個節點的輸出資料,是關於一本書的資料。

其中 Availability 是文字,但我只想要裡面的數字(剩多少本書)。如果沒有,就顯示 0。

幫我寫一段 Javascript,放進 n8n 的 Code 節點裡,輸出時把 Availability 改名成 Number。

ChatGPT 會產出像這樣的程式碼:

return items.map(item => {
  const data = item.json;

  // 用正則抓取數字
  const match = data.Availability.match(/\((\d+)\s+available\)/);
  const number = match ? parseInt(match[1], 10) : 0;

  return {
    json: {
      Classification: data.Classification,
      Price: data.Price,
      Number: number
    }
  };
});

  1. 把程式碼貼進 Code 節點的「JavaScript」區塊,點執行,

    就可以看到原本的 Availability 變成純數字的 Number 了 🎉


📝 更新結果到 Airtable

  1. 這時你會發現,Airtable 節點裡原本放 {{$json.Availability}} 的欄位變紅了(錯誤狀態)。

    因為現在上一個節點已不是 HTML 節點,而是 Code 節點,而且已經沒有 Availability 欄位了。

  2. 解決方法有兩種:

    • 如果仍需要原始文字,就從 HTML 節點拉資料進來:

      {{ $('HTML1').item.json.Availability }}

    • 如果只要數字,就直接從 Code 節點拉:

      {{$json.Number}}

  3. 但這裡還有一個重點:

    Airtable 原本的 Availability 欄位屬性是「Single line text」,如果你直接塞數字會出錯。

    因此我們要 新建一個「Number」欄位 來存數字。


➕ 在 Airtable 新增數字欄位

  1. 回到 Airtable 介面,新建欄位:

    • 欄位名稱:Number
    • 欄位類型:Number
  2. 回到 n8n 的 Airtable 節點,點右上角「Refresh Column List」,

    就能看到新的 Number 欄位出現。

  3. 把 {{$json.Number}} 拉到 Number 欄位的輸入框。

  4. 測試執行後,Airtable 就會看到一筆筆數字出現 🎯

  5. 回到工作流最前端,按「Execute workflow」,整個爬蟲流程就會自動循環處理所有書籍


🧩 Code 節點的更多用途

這次我們只是把文字中的數字抽出來,但其實 Code 節點還能做更多事:

  • 改變資料格式(例如幣值轉換)
  • 處理字串內容(例如只保留書名的第一個字)
  • 合併兩個欄位
  • 自動產生新的欄位

記得:只要是資料轉換的需求,都可以優先考慮 Code 節點,

然後問 ChatGPT 幫你寫程式就好,自己不用會寫程式 💪


📌 小作業

這次我們用 Code 節點處理資料,你也可以試試:

  • 用 AI Agent 處理 Availability 的文字 → 數字轉換
  • 比較兩種方式下,AI 節點分別被運行了幾次

🔍 提示:

如果用「Information Extraction」節點處理資料,只會跑一次;

但用 AI Agent,若還要調用工具,可能會來回呼叫多次,成本差很多喔 💰


交流

我建立了一個行銷技術交流群,專注討論 SEO、行銷自動化等主題,歡迎有興趣的朋友一起加入交流。

掃QR Code 或點擊圖片加入

https://ithelp.ithome.com.tw/upload/images/20250901/20178495xURUZaqziV.jpg


上一篇
Day 19|資料獵人養成記(3)人人都能打造的資料迴圈工廠 🏭
下一篇
Day 21|資料獵人養成記(5) 最後拼圖:用 Set 節點打造完整爬蟲工作流 🧩
系列文
30 天生成式 AI 工作流:社群經營者的自動化實戰21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言