我有一个调用一些Python代码的Java应用程序。我在理解如何从 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
关于java - 将 python 列表返回给 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28112158/