IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> JAVA——java服务调用python脚本服务 -> 正文阅读

[Python知识库]JAVA——java服务调用python脚本服务

作者:more-toolbox-new

摘要

在日常的开发过程中我们经常遇到的java调用python的脚本,所以在本博文中我将为大家展示java项目的dokcer调用python服务的docker项目,同样在java调用其他语言的时候也是同样的一个道理。以下的例子仅仅工大家参考。

项目结构

项目代码

package com.xjl.javatopython.function;

import org.python.core.*;
import org.python.util.PythonInterpreter;

/**
 * @Classname JavaCallPython
 * @Description TODO
 * @Date 2021/9/30 7:31
 * @Created by xjl
 */
public class JavaCallPython {
    //解释器
    private PythonInterpreter pythonInterpreter;

    public PythonInterpreter getPythonInterpreter(String pythonfile) {
        PythonInterpreter pythonInterpreter = new PythonInterpreter();
        pythonInterpreter.execfile(pythonfile);
        return pythonInterpreter;
    }

    public void setPythonInterpreter(PythonInterpreter pythonInterpreter) {
        this.pythonInterpreter = pythonInterpreter;
    }

    /**
     * @description TODO   调用py文件里的属性
     * @param: interpreter
     * @param: path
     * @date: 2021/9/30 6:29
     * @return: void
     * @author: xjl
     */
    public void calllpython_name(PythonInterpreter interpreter) {
        PyObject xyzobj = interpreter.get("xyz");
        System.out.println("xyz=" + xyzobj);
        PyObject abcobj = interpreter.get("abc");
        System.out.println("abc=" + abcobj);
        interpreter.set("newstr", "newString");//手动添加newstr变量
        System.out.println("newstr=" + interpreter.get("newstr"));
        interpreter.exec("print('='*50)");
    }

    /**
     * @description TODO 调用python的函数
     * @param: interpreter
     * @param: path
     * @date: 2021/9/30 6:30
     * @return: void
     * @author: xjl
     */
    public void calllpython_function(PythonInterpreter interpreter) {
        PyFunction funStr = interpreter.get("func_str", PyFunction.class);
        System.out.println(funStr.__call__().__tojava__(PyString.class));
        System.out.println(funStr.__call__());
        PyFunction funList = interpreter.get("func_list", PyFunction.class);
        PyList list = (PyList) funList.__call__().__tojava__(PyList.class);
        System.out.println(list);
        System.out.println(list.get(2));
        PyFunction funDict = interpreter.get("func_dict", PyFunction.class);
        PyDictionary dict = (PyDictionary) funDict.__call__().__tojava__(PyDictionary.class);
        System.out.println(dict);
        System.out.println(dict.get(2));
    }

    public static void main(String[] args) {
        String python_path = "Java_To_Python/src/main/resources/scripts/test.py";
        JavaCallPython testCallPython_jython = new JavaCallPython();
        PythonInterpreter pythonInterpreter = testCallPython_jython.getPythonInterpreter(python_path);
        testCallPython_jython.calllpython_name(pythonInterpreter);
        testCallPython_jython.calllpython_function(pythonInterpreter);
    }
}

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-30 11:53:45  更:2021-09-30 11:54:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:23:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码