zoukankan      html  css  js  c++  java
  • go beego框架与python实现数据交互

    目标:将go中一个二维数组传到pythone中处理并返回。难点在于数据格式的转换。

    go代码如下:

    package main
    
    import (
        "os/exec"
        "syscall"
        "github.com/astaxie/beego"
        "encoding/json"
    )
    
    func main() {
        a := [][]float64{
            {1,2},
            {3,4},
        }
        json_a,_:=json.Marshal(a)
        string_a:=string(json_a)
        cmd := exec.Command("python", "test.py",string_a)
        cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
        var ret [][]float64
        out, _ := cmd.Output()
        err := json.Unmarshal(out, &ret)
        beego.Debug(err)
        beego.Debug(ret)
    }
    test.python文件如下:
    import json
    
    def setParam(argv):
        param={}
        param["a"] = json.loads(argv[1])
        return param
    
    if __name__ == '__main__':
        param = setParam(sys.argv)
        a = param["a"]
        print(a)

    可以看到python中处理的结果是将我们go中传来的二维数组原封不动返回回去。

    数据传输过程如下:

    1.在go中,先将二维数组用 json.Marshal 编码为json,并以字符串形式传到python中,传的时候使用命令行cmd。

    2.在python中,使用 json.loads 将接收到的数据解码。并输出。(python输出的格式会自动转为json格式)

    3.数据传回go中,在go中使用 json.Unmarshal 解码得到传回的数据。




  • 相关阅读:
    Python multiprocessing相关疑问
    Tornado demo3
    WebSockets
    Tornado Demo1---webspider分析
    Python assert断言
    Python学习之--数据基础
    Python学习之--python概要
    Python学习之--函数/生成器/装饰器
    Python学习之文件操作
    Python操作MySQL数据库
  • 原文地址:https://www.cnblogs.com/zheng123/p/9755784.html
Copyright © 2011-2022 走看看