从Java调用Python代码并返回JSON对象

时间:2016-12-23 23:05:11

标签: java python

我写了python脚本来读取传感器的“温度/湿度”数据并且工作正常并返回结果“23.0 / 38.0”。

我需要将23.0放在对象成员变量“temperature”中,将38.0放在“Humidity”成员变量中,然后返回传感器对象。

我的问题是,创建的Web服务返回温度和Humidity变量为空。

<feature name="Device">
<param name="ios-package" value="com.xxxx.xxxxx" />
<param name="onload" value="true" />
</feature>

}

1 个答案:

答案 0 :(得分:0)

您可以使用BufferedReader收集Python脚本的输出,一次性读取整行输出(假设生成一行)。

然后,您可以使用String.split()将字符串分解为温度和湿度分量,并使用/作为分隔符。最后,如果需要,您可以将这些字符串转换为float类型:

import java.io.*;

public class Test {
    public static void main(String[] args) {
        try {
            Process p = Runtime.getRuntime().exec("python test.py");
            BufferedReader fromChild = new BufferedReader(
                                         new InputStreamReader(p.getInputStream()));
            String data = fromChild.readLine();
            String[] measurement = data.split("/");
            System.out.println("Temperature: " + measurement[0]);
            System.out.println("Humidity: " + measurement[1]);

            float temperature = Float.parseFloat(measurement[0]);
            float humidity = Float.parseFloat(measurement[1]);
            System.out.println("Temperature (float): " + temperature);
            System.out.println("Humidity (float): " + humidity);
        }
        catch(Exception e) {
            System.out.println(e.getMessage());
        }
    }
}