美文网首页
00-java调用python脚本

00-java调用python脚本

作者: wshsdm | 来源:发表于2019-02-27 22:53 被阅读0次

1 创建maven项目

在pom.xml文件中添加相应库:

<dependencies>

    <dependency>

        <groupId>org.python</groupId>

        <artifactId>jython-standalone</artifactId>

        <version>2.7.0</version>

    </dependency>

    <!-- JSONObject对象依赖的jar包 -->

    <dependency>

        <groupId>commons-beanutils</groupId>

        <artifactId>commons-beanutils</artifactId>

        <version>1.9.3</version>

    </dependency>

    <dependency>

        <groupId>commons-collections</groupId>

        <artifactId>commons-collections</artifactId>

        <version>3.2.1</version>

    </dependency>

    <dependency>

        <groupId>commons-lang</groupId>

        <artifactId>commons-lang</artifactId>

        <version>2.6</version>

    </dependency>

    <dependency>

        <groupId>commons-logging</groupId>

        <artifactId>commons-logging</artifactId>

        <version>1.1.1</version>

    </dependency>

    <dependency>

        <groupId>net.sf.ezmorph</groupId>

        <artifactId>ezmorph</artifactId>

        <version>1.0.6</version>

    </dependency>

    <dependency>

        <groupId>net.sf.json-lib</groupId>

        <artifactId>json-lib</artifactId>

        <version>2.2.3</version>

        <classifier>jdk15</classifier><!-- 指定jdk版本 -->

    </dependency>

    <!-- Json依赖架包下载 -->

</dependencies>

2 创建ok.py文件,该文件位置需要直接放置在项目目录中

#-*- coding: UTF-8 -*-

import json

def hello(x):

    y=json.loads(x)

    return r'{k1:"成功没有%d", str:"%s"}'%(y["xid"],y["xname"])

3 创建java调用代码

import net.sf.json.JSONObject;

import org.python.core.*;

import org.python.util.PythonInterpreter;

public class ok {

    //调用python语句

    public void py01(){

        PythonInterpreter interpreter = new PythonInterpreter();

        interpreter.exec("print('hello')");

    }

//    调用python脚本

    public void py02(){

        PythonInterpreter interpreter = new PythonInterpreter();

        interpreter.execfile("ok.py");

        PyFunction pyFunction = interpreter.get("hello", PyFunction.class); // 第一个参数为期望获得的函数(变量)的名字,第二个参数为期望返回的对象类型

        String s="{\"xid\":18,\"xname\":\"你好\"}";

        PyString str = Py.newStringUTF8(s);

        PyObject pyObject = pyFunction.__call__(str); // 调用函数

        JSONObject obj=new JSONObject();

        System.out.println(pyObject);

    }

    public static void main(String[] args) {

        ok k=new ok();

        k.py02();

    }

}

执行返回结果:

{k1:"æ��å��没æ��18", str:"你好"}

相关文章

网友评论

      本文标题:00-java调用python脚本

      本文链接:https://www.haomeiwen.com/subject/epfujqtx.html