2020-12-19

mBlock5 慧編程 處理 json 資料 -- 以即時股價為例

現今的資訊科技非常發達,機器人不再單純操控,結合多項特殊功能才更能發揮機器人的功用,除了AI人工智慧、物聯網IOT之外,大數據(資料科學 Data Science)也是其中一個未來重要發展。

mBlock5慧編程正好具備AI人工智慧、IOT物聯網、數據資料處理等功能。

目前資料數據都是以天氣資料為主要範例,一般還有公共交通工具資訊、垃圾車位置即時資訊,政府機關更是有專責部門提供公開資訊,舉凡疾病數量統計、口罩發放等都能從網路上擷取各項資訊。

今天看到劉正吉老師發文介紹他所自製的「股票即時資訊積木」,我就想到或許可以用mBlock5慧編程試試看,還好有人提供相關工具,所以我在mBlock5上完成簡單的股票成交價顯示。

這裡用到了三個延伸集的腳色擴展:(在附加元件中心點擊 Data Science能夠較快找到你所需要的擴展)

1. 網頁請求擴展:用 GET 方法向網頁請求資料

2. 資料結構擴展:取得 json 資料後的解析

3. 數據工具庫:字串符的處理


測試結果得知資料結構擴展只能處理大括號的物件結構(名稱與數值),但是台灣證券交易所的資料是混合物件結構與陣列結構(中括號),「資料結構擴展」似乎無法處理這種混合式的資料,還好有「數據工具庫」來幫忙,勉強分割字串,終於完成任務。

目前只是很簡單地輸入上市股票代號,根據請求的json資料解析出公司簡稱及成交股價。

下圖:輸入代號2330(台積電)


在mBlcok5 (Scratch)中的網頁請求好像很慢,而且也偶爾會失敗(代碼503)。

貓熊先說「我查一查」





輸入2337就是旺宏


程式如下圖:






還有兩點需要注意:

1. 根據ZY's notes的文章:證交所即時資訊API證交所即時資訊API的URL格式(JSON格式)為 

https://mis.twse.com.tw/stock/api/getStockInfo.jsp?ex_ch=tse_2330.tw

其中需要改變的就是股票代碼2330,所以我採用詢問答案,利用字串組合功能,得出完整的網址。

2. 利用「數據工具庫」的字串符功能,以逗號及雙引號分隔處理msgArray的資料。

可惜我不會寫擴展,不然也可以在程小奔或是CyberPi的圖形命令中增加GET命令,讓具備WiFi功能的主控板能夠直接使用。相信會有更多用途!

歡迎大家一起討論其他方法,謝謝!








沒有留言:

張貼留言

探奇歡迎大家留言討論!謝謝分享你的意見。