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)
posted @ 2022-05-30 16:57  我是个机器人  阅读(1221)  评论(0编辑  收藏  举报