爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6375|回复: 1

[混合编程] Java获得Python返回值的方式

[复制链接]

新浪微博达人勋

发表于 2022-4-21 14:50:13 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
Java是目前最流行的web开发语言,Python的轮子多又强,强强联合势在必行。
首先,在Linux服务器上安装Java和Python。
Java可以通过调用“Python解释器”执行test.py。
如果Java需要获得test.py的返回值,可参考以下帖子:
https://www.jianshu.com/p/1ee0d27eff49
我们使用帖子中的Java程序来接收返回值。

经实测:
1、想返回数字,test.py中写print(123),Java收到字符串“123”
2、想返回字符串,test.py中写print(‘好诗’),Java收到字符串“好诗”
3、想返回字典,就转为json格式再按字符串发送,即:
x={‘one’:’apple’,’嗯好的’:123,’three’:[11,22,33]}
y=json.dumps(x,ensure_ascii=False) ; print(y)
Java程序会接收到这个json字符串。
4、还可以返回多个,test.py内容为print(123) ; print(456)时,Java就接收到:
123
456
总之,可以简单地理解为:
test.py用print函数,本来会打印在终端的内容,都可以被Java截获(然后不会在终端显示)。


这种模式,以前我也遇到过,以前我用python查询FTP服务器上的文件时,就是用发送FTP命令,然后“截获”将要打印在终端的文本信息。




密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2022-7-16 18:46:52 | 显示全部楼层
【后续剧情】

旧的业务逻辑是:Java通过操作系统终端,获得Python返回值,然后再传给前端,
这个方式速度比较慢,
新的业务逻辑是:Python通过Django,直接向前端传递返回值,不再从Java后端那里绕弯路了

密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表