• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

go beego框架与python实现数据交互

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

目标:将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 解码得到传回的数据。





鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
python值的引用传递和go语言的值传递发布时间:2022-07-10
下一篇:
【转】我为什么从python转向go发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap