需求如题
依赖:
<dependency>
<groupId>org.python</groupId>
<artifactId>jython-standalone</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
Python 脚本文件:
# -*- coding: utf-8 -*-
import json
my_json = '{"ip":"10.111.32.115","nio":"1234","persion":{"addr":"北京","age":18,"name":"张三"}}'
my_json_object = json.loads(my_json)
print(my_json_object['nio'])
print(my_json_object['persion']['name'])
代码:
import org.apache.commons.io.FileUtils;
import org.python.core.Py;
import org.python.core.PyString;
import org.python.util.PythonInterpreter;
import java.io.File;
import java.io.IOException;
/**
* java 调用 Python 测试
*
* Created by c.z on 2019/12/3. */
public class JPythonTest {
public static void main(String[] args) throws IOException {
String pyStr = FileUtils.readFileToString(new File( "E:\\tmp\\stu01.py"),"utf-8");
PyString pyString = Py.newStringUTF8(pyStr);
PythonInterpreter pyInterp = new PythonInterpreter();
pyInterp.exec("print('Hello Python World!')");
pyInterp.exec(pyString);
}
}
输出结果:
Hello Python World!
1234
����
成长的路总是这么坎坷,乱码总会相逢,一个恶心人的顽疾!
解决:
import org.apache.commons.io.FileUtils;
import org.python.core.Py;
import org.python.core.PyString;
import org.python.util.PythonInterpreter;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
/**
* java 调用 Python 测试
*
* Created by c.z on 2019/12/3. */
public class JPythonTest {
public static void main(String[] args) throws IOException {
Properties props = new Properties();
props.put("python.console.encoding", "UTF-8");
Properties preprops = System.getProperties();
PythonInterpreter.initialize(preprops, props, new String[0]);
String pyStr = FileUtils.readFileToString(new File( "E:\\tmp\\stu01.py"),"utf-8");
PyString pyString = Py.newStringUTF8(pyStr);
PythonInterpreter pyInterp = new PythonInterpreter();
pyInterp.exec("print('Hello Python World!')");
pyInterp.exec(pyString);
}
}
真爱,总是难相逢:
Hello Python World!
1234
张三
写的复杂了,看了别人瞎写,走了弯路:
import org.apache.commons.io.FileUtils;
import org.python.core.Py;
import org.python.core.PyString;
import org.python.util.PythonInterpreter;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
/**
* java 调用 Python 测试
*
* Created by c.z on 2019/12/3. */
public class JPythonDemo2 {
public static void main(String[] args) throws IOException {
Properties props = new Properties();
props.put("python.console.encoding", "UTF-8");
Properties preprops = System.getProperties();
PythonInterpreter.initialize(preprops, props, new String[0]);
String pyStr = FileUtils.readFileToString(new File( "E:\\tmp\\stu01.py"),"utf-8");
PythonInterpreter pyInterp = new PythonInterpreter();
pyInterp.exec(pyStr);
}
}
end