从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