如何在java和python之间来回发送数据数组?

时间:2018-01-25 23:32:44

标签: java python arrays jython

我有一个java程序,我需要它来获取python脚本计算的一些数据。

我已经让java通过jython的PythonInterpreter向python发送一个整数并显示它,但是我无法恢复它以进行其他操作。另外,发送一个完整的整数数组而不是单个整数会很棒,但我不能用PyObjects包围我的想法以及如何使用它们。

是否有任何有用的教程涵盖数组?我已经搜索了一段时间,但我只是找到整数和浮点相关的教程。

3 个答案:

答案 0 :(得分:1)

如果您想要一个简单的解决方案,那么我建议您将整数写入并读取到文件中。也许不是最优雅的方式,但实施起来只需几分钟。

答案 1 :(得分:1)

我参与过类似的项目。这里简要概述了Java和Python分别在做什么。

<强>爪哇 我们使用Java作为主服务器来接收来自客户端的请求,并在一些数据操作之后发回响应。

<强>的Python Python负责数据操作或计算。数据是通过套接字网络从Java发送的。我们首先以 string 格式定义了我们需要的数据,然后将它们转换为 bytes ,以便通过套接字网络将它们设置为semt。

由于存在限制,使用套接字网络,我使用Python Flask将其更改为Rest Api。通过这种方式,我们可以轻松地与Java进行通信,而不仅仅是在这种情况下,使用键值json格式。通过这种方式,我能够接收任何可以通过Api传递的数据类型,包括你提到的数组对象。

答案 2 :(得分:0)

如果以某种方式将数字写入/读取到文件的解决方案是不够的,您可以尝试以下方法: 您可以使用Pyro4(以及用于Java代码的Pyrolite客户端库)从您的Java代码中调用正在运行的Python程序,而不是使用Jython。 这允许您在正常情况下运行您的python代码。例如,python 3.6解释器,而不是仅限于Jython所遵循的版本。 你必须在一个单独的过程中启动Python解释器(但这甚至可以在不同的机器上)