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



最新文章

  1. Win10全屏看视频时任务栏不隐藏
  2. 前端应当了解的Web缓存知识
  3. 使用Fluent配置表关系
  4. MySQL提示符含义
  5. phpcms V9 首页模板文件解析
  6. Android 使用NDK编译sipdroid Library
  7. 常用SQL语句优化技巧
  8. Selenium2Library系列 keywords 之 _ElementKeywords
  9. Python的descriptor (2)
  10. centos 6.5安装esx sdk
  11. 抽空通过简书网学习了一下console,感觉高大上!
  12. ffmpeg常用参数一览
  13. ORACLE uuid自己主动生成主键
  14. 战争热诚的python全栈开发之路
  15. Asible第三章:roles--小白博客
  16. WPF模拟键盘输入和删除
  17. Redis Cluster集群知识学习总结
  18. Java日志输出问题
  19. C# List分页
  20. Ubuntu 下Anaconda3出现 conda:command not found(未找到命令)

热门文章

  1. Linux POSIX共享内存方法&ipcs &struct shmid_ds
  2. IGS OPC UA 配置
  3. Caffe入门:对于抽象概念的图解分析
  4. Netty(五)Netty 高性能之道
  5. Gym 101174D Dinner Bet(概率DP)题解
  6. 微服务架构Day05-SpringBoot之Servlet
  7. js array contains All In One
  8. 如何使用 js 检测页面上全局变量
  9. Flutter & Scaffold & multiple floatingActionButton
  10. SVG & getBBox