Java调用Python脚本传参为json格式的解决方案
Java调用Python脚本传参为json格式的解决方案
java将json对象转换成字符串传到Python脚本中之后,Python程序得到的字符串与Java传输过去的字符串是不一样的!!Python得到的json字符串中的key是没有双引号包围的。这个时候直接使用json.loads()会报错。
解决的办法是用demjson.decode()将字符串解码为Python对象。
// json是一个json对象
String[] arguments = new String[] {"py", "D:\\test.py",json.toJSONString()};
try {
Process process = Runtime.getRuntime().exec(arguments);
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
int re = process.waitFor();
System.out.println(re);
} catch (Exception e) {
e.printStackTrace();
}
// python脚本接收参数
import sys
import demjson
str=sys.argv[1]
str得到的key没有双引号
直接用json.loads(str)报错
data=demjson.decode(str)