Java如何调用python并读取python返回的多个list?
时间: 2024-01-27 11:05:45 浏览: 31
在Java中可以使用一些库来调用Python脚本并获取返回值,比如Jython、JPY等。下面以JPY为例,演示如何使用Java调用Python并读取返回的多个列表。
首先,确保你已经安装了JPY库并将其添加到Java项目的依赖中。
假设有一个Python脚本 `python_script.py` 如下所示:
```python
def get_lists():
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
return list1, list2
```
下面是Java代码示例:
```java
import org.jpy.PyLib;
import org.jpy.PyModule;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 加载Python解释器
PyLib.startPython();
try {
// 导入Python模块
PyModule module = PyModule.create("python_script");
// 调用Python函数并获取返回值
List<?>[] pythonReturnValue = module.call("get_lists").toJava(List[].class);
// 遍历列表1
for (Object item : pythonReturnValue[0]) {
System.out.println(item);
}
// 遍历列表2
for (Object item : pythonReturnValue[1]) {
System.out.println(item);
}
} finally {
// 关闭Python解释器
PyLib.stopPython();
}
}
}
```
在上述示例中,我们使用了JPY库来加载Python解释器,并通过`PyModule`类导入Python模块。然后,我们调用Python函数`get_lists`并将返回值转换为Java的列表数组。
需要注意的是,JPY库的使用可能需要配置一些环境变量,具体可以参考其官方文档或者相关资源。
希望对你有所帮助!如有任何疑问,请随时提问。