如何在Python函数中处理Java列表(从Java程序发送)?
我有一个Java列表,如下Java代码块所示:如何在Python函数中处理Java列表(从Java程序发送)?,java,python,Java,Python,我有一个Java列表,如下Java代码块所示: List<Float> list = new ArrayList<Float>(); list.add(1.2345); list.add(2.2345); 但是在程序运行时发生了一些错误,JLISTPcessor没有打印出任何内容 我不知道是否可以将列表类型的参数从Java传递到Python,或者是否有其他方法可以做到这一点?如果您有任何建议,我们将不胜感激,非常感谢 无法将ArrayList传递给Python脚本,因此
List<Float> list = new ArrayList<Float>();
list.add(1.2345);
list.add(2.2345);
但是在程序运行时发生了一些错误,JLISTPcessor没有打印出任何内容
我不知道是否可以将列表类型的参数从Java传递到Python,或者是否有其他方法可以做到这一点?如果您有任何建议,我们将不胜感激,非常感谢 无法将ArrayList传递给Python脚本,因此必须将ArrayList转换为如下所示的字符串:
public static String listToString(List<Object> list)
{
String listConcat = "";
for(int i = 0; i < list.size(); i++)
{
String num = String.valueOf(list.get(i));
if((i + 1) != list.size())
{
listConcat += num + ",";
}
else
{
listConcat += num;
}
}
return listConcat;
}
public static void main(String[] args)
{
List<Object> list = new ArrayList<Object>();
list.add(1.2345);
list.add(2.2345);
System.out.println(listToString(list));
}
然后在foo.py中,必须在逗号处拆分字符串,并将每个字符串转换为浮点:
import sys
def JListPrcessor(javalist):
print "pass the processor"
jlist = [float(num) for num in javalist.split(",")]
print jlist
try:
inputList = sys.argv[1]
except:
print "No input str given"
sys.exit(1)
JListPrcessor(inputList)
其中:
pass the processor
[1.2345, 2.2345]
不知道你在做什么,但是如果你有用不同语言构建的模块,为什么不在两者之间使用一种可以理解的格式呢?例如,您可以使用现有库将列表更改为JSON,然后在python端将该JSON解析回python dict。如果您不发送太复杂的对象,这不需要您的任何努力。发生了一些错误什么错误???回溯?用于将java连接到python的模块?错误?我猜Jython被利用了。
import sys
def JListPrcessor(javalist):
print "pass the processor"
jlist = [float(num) for num in javalist.split(",")]
print jlist
try:
inputList = sys.argv[1]
except:
print "No input str given"
sys.exit(1)
JListPrcessor(inputList)
pass the processor
[1.2345, 2.2345]