從WebService/http Restful API中抽取數據到數據庫


從聚合數據網站的API接口抽取股票數據到數據庫中

接口說明文檔:https://www.juhe.cn/docs/api/id/21

clipboard

接口返回的數據格式如下:

{
"resultcode":"200", /*返回碼,200:正常*/
"reason":"SUCCESSED!",
"result":[
{
    "data":{
        "gid":"sh601009",                /*股票編號*/
        "increPer": "9.91",              /*漲跌百分比*/
        "increase": "43.99",             /*漲跌額*/
        "name":"南京銀行",                /*股票名稱*/
        "todayStartPri":"8.26",                /*今日開盤價*/
        "yestodEndPri":"8.26",                /*昨日收盤價*/
        "nowPri":"8.37",                /*當前價格*/
        "todayMax":"8.55",                /*今日最高價*/
        "todayMin":"8.25",                /*今日最低價*/
        "competitivePri":"8.37",            /*競買價*/
        "reservePri":"8.38",                /*競賣價*/
        "traNumber":"34501453",                /*成交量*/
        "traAmount":"290889560",            /*成交金額*/
        "buyOne":"10870",                /*買一*/
        "buyOnePri":"8.37",                /*買一報價*/
        "buyTwo":"177241",                /*買二*/
        "buyTwoPri":"8.36",                /*買二報價*/
        "buyThree":"92600",                /*買三*/
        "buyThreePri":"8.35",                /*買三報價*/
        "buyFour":"87200"                /*買四*/
        "buyFourPri":"8.34",                /*買四報價*/
        "buyFive":"113700",                /*買五*/
        "buyFivePri":"8.42",                /*買五報價*/
        "sellOne":"47556",                /*賣一*/
        "sellOnePri":"8.38",                /*賣一報價*/
        "sellTwo":"103057",                /*賣二*/
        "sellTwoPri":"8.39",                /*賣二報價*/
        "sellThree":"186689",                /*賣三*/
        "sellThreePri":"8.40",                /*賣三報價*/
        "sellFour":"49000",                /*賣四*/
        "sellFourPri":"8.41",                /*賣四報價*/        
        "sellFive":"214535",                /*賣五*/
        "sellFivePri":"15.21",                /*賣五報價*/
        "date":"2012-12-11",                /*日期*/
        "time":"15:03:06",                /*時間*/
    },
    "dapandata":{/*大盤數據可通過字段type單獨查詢*/
    },
    "gopicture":{
        
    "minurl":"http://image.sinajs.cn/newchart/min/n/sh601009.gif",/*分時K線圖*/
        "dayurl":"http://image.sinajs.cn/newchart/daily/n/sh601009.gif",/*日K線圖*/
        "weekurl":"http://image.sinajs.cn/newchart/weekly/n/sh601009.gif",/*周K線圖*/
        "monthurl":"http://image.sinajs.cn/newchart/monthly/n/sh601009.gif"/*月K線圖*/
    }
}]
}
----------------------------------深(上)證指數示例------------------------------------------------------------------
{
    "error_code": 0
    "reason": "SUCCESSED!",
    "result": {
        "dealNum": "24388041799",/*成交量*/
        "dealPri": "340674441059.270",/*成交額*/
        "highPri": "10357.417",/*最高*/
        "increPer": "-0.46",/*漲跌百分比*/
         "increase": "-43.756",/*漲跌幅*/
        "lowpri": "10121.741",/*最低*/
        "name": "深證成指",/*名稱*/
        "nowpri": "10270.855",/*當前價格*/
        "openPri": "10200.547",/*今開*/
        "time": "2015-09-22 14:45:25",/*時間*/
        "yesPri": "10176.727"/*昨收*/
    },
}

 

再看一下目標表的結構:

表名:STOCK_HS

字段結構如下:

clipboard

需要從接口數據中取出7個字段的值寫入數據庫

在HHDI中如何進行配置?

第一步:創建目標數據連接

clipboard

導入目標表元數據結構

clipboard

轉換任務中新建執行WebService任務,填寫任務編號和名稱

clipboard

web服務頁簽中填寫URL、請求方式和返回類型

clipboard

注意url中有一個變量:${StockNo},假設可以通過設置股票代碼變量來獲取數據

也可以采用POST方式提交,選擇POST(鍵值對參數)

clipboard

注意點擊數據預覽之前需要將變量替換為實際值

clipboard

寫入目標頁簽中選擇創建的數據連接和導入的目標表,更新方式選擇插入前先刪除已有的數據

clipboard

在字段配置頁簽中點擊添加全部字段,並配置各字段的JsonPath和對應的數據庫字段

clipboard

注意:從JSON數據中根據JSONPATH解析出來的數據的內容類型選擇節點,如果是常量或者變量的話則選擇數值

比如STOCKNO字段,是獲取變量中的值並寫入數據庫中,則自處的內容類型為數值

成功條件如果不選,則默認為HTTP狀態碼為200.

clipboard

保存后,執行任務進行測試,輸入變量StockNo的值,點擊執行任務

clipboard

觀察執行日志

clipboard

查看數據庫的結果

clipboard


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM