将 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
我有一个 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