Python作为脚本语言,比shell和其它脚本更加好用,主要是Python提供了丰富的类库,现在越来越多的框架都开启了PyAPI,特别是机器学习方面,可见Python在脚本领域中占的分量有多大。直接上需求:
通过Python解析整形的Base64编码
当然,这个案例不仅仅是使用Python那么简单,因为我试了好多Python的类库就是解析不了项目中编码过后的整形,因此,这个案例将结合 Java 去解码。
一、Java代码的编写和打包
1.1 编写代码
package com.nfdw;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Base64;
public class Base64ToDecimal {
public static BigDecimal b64ToDecimal(String value, int decimal){
BigDecimal new_value = new BigDecimal(new BigInteger(Base64.getDecoder().decode(value)), decimal);
return new_value;
}
}
1.2 打包打包成 jar 包后,我们重命名包,然后复制到我们的 Python 项目中
二、编写 Python 脚本代码
2.1 编写代码
import jpype
import os.path
'''
注意函数里第一行 jar的路径
'''
def base64_to_decimal(value, decimal):
jarpath = os.path.join(os.path.abspath('.'), 'libs/base64todecimal.jar') # 注意 jar 包的路径
try:
jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % jarpath)
except:
pass
base64ToDecimal = jpype.JClass('com.nfdw.Base64ToDecimal')
t = base64ToDecimal()
result = t.b64ToDecimal(value, decimal)
return result
if __name__ == '__main__':
print(base64_to_decimal("AW42AA==", int(2)))
jpype.shutdownJVM()
2.2 运行结果好了,到这里,我们的案例已完成。。。