将 python 列表返回到 Java

Returning python list to Java

我有一个 Java 应用程序调用了一些 Python 代码。我在理解如何将列表从 Python 返回到 java 时遇到一些问题。

假设我有一个非常简单的 python 模块,如下所示:

def myFunc(param):
    print param
    return [ ["a","b"] , ["c","d"] , ["e","f"] ]

还有一段 java 调用此函数的代码:

String funcName = "myFunc";
try {
    PythonInterpreter interpreter = new PythonInterpreter();
    interpreter.exec("from myModule import * \n");
    PyObject someFunc = interpreter.get(funcName);
    someFunc.__call__(new PyString(workspacePath),new PyString(deployName));
}
catch(Exception e){
    e.printStackTrace();
    throw new Exception("Error while generating client resources.", e);
}

如何将返回的对象转换为可以轻松迭代的对象?如何提取列表中的字符串?

我试着用 PyList 或 Iterable PyObject 搞乱了一下,但到目前为止没有成功。有什么想法吗?

谢谢

您可以构建 Java 个对象。如果预期的消费者是一个 Java 程序,那可能就是要做的事情。

import java.util.ArrayList as ArrayList
import java.lang.String as String
...
javaList = ArrayList()
for subList in [ ["a","b"] , ["c","d"] , ["e","f"] ]:
    javaSubList = ArrayList()
    for s in subList:
        javaSubList.add(String(s))
    javaList.add(javaSubList)
return javaList